|
计算机等级二级C语言程序设计100例六(3) setbkcolor(GREEN); LineToDemo();}
【程序66】
题目:输入3个数a,b,c,按大小顺序输出。
1.程序分析:利用指针方法。
2.程序源代码:
以下是引用片段: /*pointer*/ main() { int n1,n2,n3; int *pointer1,*pointer2,*pointer3; printf("please input 3 number:n1,n2,n3:"); scanf("%d,%d,%d",&n1,&n2,&n3); pointer1=&n1; pointer2=&n2; pointer3=&n3; if(n1>n2) swap(pointer1,pointer2); if(n1>n3) swap(pointer1,pointer3); if(n2>n3) swap(pointer2,pointer3); printf("the sorted numbers are:%d,%d,%d\n",n1,n2,n3); } swap(p1,p2) int *p1,*p2; {int p; p=*p1;*p1=*p2;*p2=p; }
【程序67】
题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
1.程序分析:谭浩强的书中答案有问题。
2.程序源代码:
以下是引用片段: main() { int number[10]; input(number); max_min(number); output(number); } input(number) int number[10]; {int i; for(i=0;i<9;i++) scanf("%d,",&number[i]); scanf("%d",&number[9]); } max_min(array) int array[10]; {int *max,*min,k,l; int *p,*arr_end; arr_end=array+10; max=min=array; for(p=array+1;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 printf("%d,",*p); printf("%d\n",array[9]); } 【程序68】
题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
1.程序分析:
2.程序源代码:
以下是引用片段: 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 scanf("%d,",&number[i]); scanf("%d",&number[n-1]); move(number,n,m); for(i=0;i printf("%d,",number[i]);
|