C语言第十章习题答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C程序设计[谭浩强](第三版)课后答案第十章指针2010-06-25 14:04
第十章指针
10.1
main()
{int n1,n2,n3;
int *p1,*p2,*p3;
scanf("%d,%d,%d",&n1,&n2,&n3);
p1=&n1;
p2=&n2;
p3=&n3;
if(n1>n2)swap(p1,p2);
if(n1>n3)swap(p1,p3);
if(n2>n3)swap(p2,p3);
printf("%d,%d,%d\n",n1,n2,n3);
}
swap(p1,p2)
int *p1,*p2;
{int p;
p=*p1;*p1=*p2;*p2=p;
}
10.2
main()
{char *str1[20],*str2[20],*str3[20];
char swap();
scanf("%s",str1);
scanf("%s",str2);
scanf("%s",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("%s\n%s\n%s\n",str1,str2,str3);
}
char swap(p1,p2)
char *p1,*p2;
{char *p[20];
strcpy(p,p1);
strcpy(p1,p2);
strcpy(p2,p);
}
10.3
main()
{int number[10];
input(number);
max_min_value(number); output(number);
}
input(number)
int number[10];
{int i;
for(i=0;i<10;i++)
scanf("%d",&number);
}
max_min_value(number)
int number[10];
{int *max,*min;
int *p,*end;
end=number+10;
max=min=number;
for(p=number+1;p
else if(*p<*min)min=p;
*p=number[0];
number[0]=*min;
*min=*p;
*p=number[9];
number[9]=*max;
*max=*p;
return;
}
output(number)
int number[10];
{int *p;
for(p=number;p printf("%d\n",*p); } 10.4 main() {int number[20],n,m,i; scanf("%d",&n); scanf("%d",&m); for(i=0;i scanf("%d",&number); move(number,n,m); for(i=0;i printf("%8d",number); } move(array,n,m) int array[20],n,m; {int *p,end; end=*(array+n-1); for(p=array+n-1;p>array;p--) *p=*(p-1); *array=end; m--; if(m>0)move(array,n,m); } 10.5 #define nmax 50 main() {int i,k,m,n,num[nmax],*p; scanf("%d",&n); p=num; for(i=0;i *(p+i)=i+1; i=k=m=0; while(m {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",*p); } 10.6 main() {int len; char *str[20]; scanf("%s",str); len=length(str); printf("\nlen=%d\n",len); } length(p) char *p; {int n=0; while(*p!='\0')