3464 - 习题8-1 排序输出
从键盘上输入3个整数(以空格分隔),按照有小到大的顺序输出这三个数。
Input
以空格分隔的三个整数。
Output
以从小到大的顺序输出3个整数,3个数之间以空格分隔,行尾输出换行符。
(注意:最后一个数的后面没有空格)。
Examples
Input
1 3 2
Output
1 2 3
Solution C
#include<stdio.h> int main() { int a,b,c,temp; int *p1=&a,*p2=&b,*p3=&c; scanf("%d%d%d",p1,p2,p3); if(*p1>*p2){temp=*p1;*p1=*p2;*p2=temp;} if(*p1>*p3){temp=*p1;*p1=*p3;*p3=temp;} if(*p2>*p3){temp=*p2;*p2=*p3;*p3=temp;} printf("%d %d %d\n",*p1,*p2,*p3); return 0; }
Solution C++
#include<cstdio> #include<cstring> #include<cstdlib> using namespace std; int cmp(const void *xx,const void *yy) { int n1=*(int *)xx; int n2=*(int *)yy; if(n1<n2)return -1; if(n1>n2)return 1; return 0; } int main() { int a[10]; scanf("%d%d%d",&a[1],&a[2],&a[3]); qsort(a+1,3,sizeof(int),cmp); printf("%d %d %d",a[1],a[2],a[3]); return 0; }