//25. 从键盘输入3个整数,要求设3个指针变量p1,p2,p3,使p1指向3个数中的最大者, //p2指向次打大者,p3指向最小者,然后按由大到小的顺序输出这3个数。 #include<stdio.h> void compare(int * p1,int *p2,int * p3) { int t; if(*p1<*p2) { t=*p1; *p1=*p2; *p2=t; } if(*p1<*p3) { t=*p1; *p1=*p3; *p3=t; } if(*p2<*p3) { t=*p2; *p2=*p3; *p3=t; } } int main() { int a,b,c; scanf("%d%d%d",&a,&b,&c); compare(&a,&b,&c); printf("%d,%d,%d\n",a,b,c); return 0; }
//26、有一个数列,含20个整数,现要求编写一个函数,能够对指定位置开始的 //几个数按相反顺序重新排列,并在main函数中输出新的数列。例如,原数列为 //1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 //若要求对第5个数开始的10个数进行逆序处理,则得到新的数列为 //1,2,3,4,14,13,12,11,10,9,8,7,6,5,15,16,17,18,19,20 /*#include<stdio.h> void change(int * p,int a,int b) { int i,j,t; for(i=a-1,j=2;i<=(a+b+1)/2;i++,j++) {t=*(p+i); *(p+i)=*(p+a+b-j); *(p+a+b-j)=t; } } int main() { int a[20]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}; int i; for(i=0;i<20;i++) printf("%d ",a[i]); printf("\n"); change(a,5,10); for(i=0;i<20;i++) printf("%d ",a[i]); printf("\n"); return 0; } */ #include<stdio.h> void resort(int array[],int where,int amount) { int *p1,*p2,temp; p1=&array[where-1]; p2=&array[where-2+amount]; for(;p1<&array[where-1]+amount/2;p1++,p2--) { temp=*p1; *p1=*p2; *p2=temp; } } int main() { int number[20],where,amount,i; printf("input 20 number \n"); for(i=0;i<20;i++) scanf("%d",&number[i]); printf("\n"); printf("how many number do you want to sort:"); scanf("%d",&amount); printf("\nwhere do you want to start:"); scanf("%d",&where); printf("\n"); printf("old array as follow:\n"); for(i=0;i<20;i++) printf("%d,",number[i]); printf("\n"); resort(number,where,amount); printf("\nresorted array as follow:\n"); for(i=0;i<20;i++) printf("%d,",number[i]); printf("\n"); return 0; }
本文出自 “鹏哥的博客” 博客,谢绝转载!
原文:http://pengge666.blog.51cto.com/11766700/1892142