如何给三个字符排序?输入的组数未知。如果用c++,代码如下:
#includeusing namespace std; main() { char a,b,c,temp; while (cin>>a>>b>>c) { if(a<b) {temp=a;a=b;b=temp;} if(a<c) {temp=a;a=c;c=temp;} if(b<c) {temp=b;b=c;c=temp;} cout<<c<<" "<<b<<" "<<a<<endl; } return 0; }
但是,如果用c来写,因为scanf会接收字符,把换行符当做你要比较的字符,所以会报错,所以加了一个%c,但是不作处理,vc可以跑过,代码如下:
#includeint main() { char a,b,c,d,temp; while (scanf("%c%c%c%c",&a,&b,&c,&d)) { if(a<b){ temp=a;a=b;b=temp; } if(a<c){ temp=a;a=c;c=temp; } if(b<c){ temp=b;b=c;c=temp; } printf("%c %c %c\n",c,b,a); } return 0; }
但是这样vc过了,vs会报错,oj也说超时,正在寻找有没有更好的方法,以后补上。