## 第一次作业

2018-03-25 21:55  无敌伟业  阅读(194)  评论(0编辑  收藏  举报

PTA第一次作业第一题：

#include <stdio.h>

void sum_diff( float op1, float op2, float *psum, float *pdiff );

int main()
{
float a, b, sum, diff;

scanf("%f %f", &a, &b);
sum_diff(a, b, &sum, &diff);
printf("The sum is %.2f\nThe diff is %.2f\n", sum, diff);

return 0;
}
void sum_diff( float op1, float op2, float *psum, float *pdiff )
{
*psum=op1+op2;
*pdiff=op1-op2;
}



PTA第一次作业第二题：

#include <stdio.h>

void splitfloat( float x, int *intpart, float *fracpart );

int main()
{
float x, fracpart;
int intpart;

scanf("%f", &x);
splitfloat(x, &intpart, &fracpart);
printf("The integer part is %d\n", intpart);
printf("The fractional part is %g\n", fracpart);

return 0;
}
void splitfloat( float x, int *intpart, float *fracpart)
{
*intpart=(int)x;
*fracpart=x-*intpart;
}



PTA第二次作业第一题：

#include <stdio.h>
#define MAXN 10

int search( int list[], int n, int x );

int main()
{
int i, index, n, x;
int a[MAXN];

scanf("%d", &n);
for( i = 0; i < n; i++ )
scanf("%d", &a[i]);
scanf("%d", &x);
index = search( a, n, x );
if( index != -1 )
printf("index = %d\n", index);
else

return 0;
}
int search( int list[], int n, int x )
{
int i;
for(i = 0;i < n;i++)
{
if(list[i] == x)
{
return i;
break;
}
}
return -1;
}


PTA第二次作业第二题：

#include<stdio.h>
#define N 10
int fun(int *a,int *b,int n);
int main()
{ int a[N],i,max,p=0;
for(i=0;i<N;i++) scanf("%d",&a[i]);
max=fun(a,&p,N);
printf("max=%d,position=%d\n",max,p);
return 0;
}
int fun(int *a,int *b,int n)
{
int j,m=0;
for(j = 1;j < N; j++)
{
if(m<a[j])
{
m=a[j];
*b=j;
}
}
return m;
}


PTA第三次作业第一题：

#include<stdio.h>
void input(int *arr,int n);
void max_min(int *arr,int n);
void output(int *arr,int n);
int main()
{ int a[10];
input(a,10);
max_min(a,10);
output(a,10);
return 0;
}
void input(int *arr,int n)
{
int i;
for(i = 0;i < n;i ++)
{
scanf("%d",&arr[i]);
}
}
void max_min(int *arr,int n)
{
int j,max = arr[0],min = arr[0],c,d,e,f;
for(j = 0;j < n;j++)
{
if(max < arr[j])
{
max = arr[j];
e = j;
}
c = max;
if(min > arr[j])
{
min = arr[j];
f = j;
}
d = min;
}
arr[e] = arr[9];
arr[f] = arr[0];
arr[0] = d;
arr[9] = c;
}
void output(int *arr,int n)
{
int x;
for(x = 0;x < n;x++)
{
printf("%3d",arr[x]);
}
}


PTA第三次作业第二题：

#include<stdio.h>
void sort(int *x,int n);
int main ( )
{int *p,i,a[10];
p=a;
for (i=0;i<10;i++)  scanf("%d",p++);
p=a;
sort(a,10);
for(i=0;i<10;i++)  printf("%4d",*p++);
printf("\n");
return 0;
}

void sort(int *x,int n)
{
int i,t,k,j;
for(i=0;i<(n-1);i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if(*(x+j)>*(x+k))
{
k=j;
}
}
if(i!=k)
{
t=*(x+i); *(x+i)=*(x+k); *(x+k)=t;
}
}
}



PTA第四次作业第一题：

#include <stdio.h>
#include <string.h>

#define MAXN 20
typedef enum {false, true} bool;

bool palindrome( char *s );

int main()
{
char s[MAXN];

scanf("%s", s);
if ( palindrome(s)==true )
printf("Yes\n");
else
printf("No\n");
printf("%s\n", s);

return 0;
}

bool palindrome(char *s)
{
int n=strlen(s);
int i, j,count=0;
for (i = 0, j = n - 1; i < n, j >= 0; i++, j--)
{  if (*(s + i) == *(s + j))
{
count++;
}
}
if (count == n)
return true;

}


PTA第四次作业第二题：

#include <stdio.h>
#define MAXN 20

void strmcpy( char *t, int m, char *s );
void ReadString( char s[] ); /* 由裁判实现，略去不表 */

int main()
{
char t[MAXN], s[MAXN];
int m;

scanf("%d\n", &m);
strmcpy( t, m, s );
printf("%s\n", s);

return 0;
}
void strmcpy(char *t, int m, char *s)
{
int i, j, len;
strcpy(s, t);
len = strlen(s);
for (i = m - 1; i>0; i--) {
for (j = i; j<len; j++) {
*(s + j - 1) = *(s + j);
}
}
*(s + len - m + 1) = '\0';
}