《C语言程序设计》课后习题答?第四?谭浩?- 百度文库 ر

printf(\ return 0; }

void swap(int *p1,int *p2) {int p;

p=*p1; *p1=*p2; *p2=p; } 8-2

#include #include int main()

{void swap(char *,char *);

char str1[20],str2[20],str3[20]; printf(\ gets(str1); gets(str2); gets(str3);

if(strcmp(str1,str2)>0) swap(str1,str2); if(strcmp(str1,str3)>0) swap(str1,str3); if(strcmp(str2,str3)>0) swap(str2,str3); printf(\

printf(\ return 0; }

void swap(char *p1,char *p2) {char p[20];

strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p); } 8-3

#include int main()

{ void input(int *);

void max_min_value(int *); void output(int *); int number[10];

input(number); max_min_value(number); output(number); return 0; }

void input(int *number)

{int i;

printf(\ for (i=0;i<10;i++)

scanf(\ }

void max_min_value(int *number) { int *max,*min,*p,temp; max=min=number;

for (p=number+1;p*max) max=p; else if (*p<*min) min=p;

temp=number[0];number[0]=*min;*min=temp; if(max==number) max=min;

temp=number[9];number[9]=*max;*max=temp; }

void output(int *number) {int *p;

printf(\ \

for (p=number;p

#include int main()

{void move(int [20],int,int); int number[20],n,m,i;

printf(\ scanf(\

printf(\ for (i=0;i

scanf(\

printf(\ scanf(\ move(number,n,m);

printf(\ for (i=0;i

printf(\ \ printf(\ return 0; }

void move(int array[20],int n,int m) {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); } 8-5

#include int main()

{int i,k,m,n,num[50],*p;

printf(\ scanf(\ p=num;

for (i=0;i

*(p+i)=i+1; i=0; k=0; m=0; while (m

if (k==3) {*(p+i)=0; k=0; m++; } i++;

if (i==n) i=0; }

while(*p==0) p++;

printf(\ return 0; } 8-6

#include int main()

{int length(char *p); int len;

char str[20];

printf(\ \

scanf(\len=length(str);

printf(\return 0; }

int length(char *p) {int n; n=0;

while (*p!='\\0') {n++; p++; }

return(n); } 8-7

#include #include int main()

{void copystr(char *,char *,int); int m;

char str1[20],str2[20]; printf(\ gets(str1);

printf(\ scanf(\ if (strlen(str1)

printf(\ else

{copystr(str1,str2,m);

printf(\ } return 0; }

void copystr(char *p1,char *p2,int m) {int n; n=0;

while (n

while (*p1!='\\0') {*p2=*p1;