【正确答案】实验内容
①main()
{
int nurnber[10];
input(number);
max_min(number);
output(number);
}
input(number)
int number[10];
{inti;
for(i=0;i<9;i++)
scanf("/%d,",&number[i]);
scanf("/%d",&number[9]);
}
max_min(array)
int array[10];
{int*max,*min,k,1;
int*p,*art_end;
art end=array+10;
max=min=array;
for(p=array+1;p<arr_end;p++)
if(*p>*max)max=p;
else if(*p<*min)min=p;
k=*max;
l=*min;
*p=array[0];array[0]=l;l=*p;
*p=array[9];array[9]=k;k=*p;
return;
}
output(array)
int array[10];
{ int*p;
for(p=array;p<array+9;p++)
printf("/%d,",*p);
printf("/%d\n",array[9]);
}
②main()
{
int number[20],n,m,i;
printf("the total numbers is:");
scanf("/%d",&n);
printf("back m:");
scanf("/%d",&m);
for(i=0:i<n-1:i++)
scanf("/%d,",&number[i]);
scanf("/%d",&number[n-1]);
move(number,n,m);
for(i=0;i<n-1;i十+)
printf("/%d,",number[i]);
printf("/%d",number[n-1]);
}
move(array,n,m)
int n,m,array[20];
{
int*p,array_end;
array_end=*(array+n-1);
for(p=array+n-1;p>array;p--)
*p=*(p-1);
*array=array_end
m--;
if(m>0)move(array,n,m);
}
③#define nmax 50
main()
{
int i,k,m,n,num[nmax],*p;
printf("please input the total of numbers:");
scanf("/%d",&n);
p=num;
for(i=0;i<n;i++)
*(p+i)=i+1;
i=0;
k=0;
m=0;
while(m<n-1)
{
if(*(p+i)!=0)k++;
if(k==3)
{*(p+i)=0;
k=0;
m++;
}
i++;
if(i==n)i=0;
}
while(*p=0)p++;
printf("/%d is left\n",*p);
}
④#include"stdio.h"
main()
{
floatpeven(),podd(),dcall();
float sum;
intn;
while(1)
{
scanf("/%d",&n);
if(n>1)
break;
}
if(n/%2==0)
{
printf("Even=");
sum=dcall(peven,n);
}
Else
{
printf("Odd=");
sum=dcall(podd,n);
}
printf("/%f",sum);
}
floatpeven(int n)
{
float s;
int i;
s=0;
for(i=2;i<=n;i+=2)
s+=1/(float)i;
return(s);
}
floatpodd(n)
int n;
{
float s;
int i;
s=0;
for(i=1;i<=n;i+=2)
s+=1/(float)i;
return(s);
}
float dcall(fp,n)
float(*fp)();
int n;
{
float s;
s=(*fp)(n);
return(s){
}
【答案解析】