不吃掉回车或空格的话就会出现这样的错位输出方式
#include<stdio.h>
int main(){
char a,b,c,t;
while(scanf(" %c%c%c",&a,&b,&c)!=EOF){//先空格是为了避免回车的读入
if(a>b){
t=a;
a=b;
b=t;
}
if(a>c){
t=a;
a=c;
c=t;
}
if(b>c){
t=b;
b=c;
c=t;
}
printf("%c %c %c\n",a,b,c);
}
}
或者
#include <bits/stdc++.h>
using namespace std;
int main(){
char a,b,c;
while(scanf("%c%c%c",&a,&b,&c)!=EOF){
getchar();//把回车或空格吃掉
if(a>b){
a^=b^=a^=b;//记住这个用来交换的东西
}
if(a>c){
a^=c^=a^=c;
}
if(b>c){
b^=c^=b^=c;
}
cout<<a<<" "<<b<<" "<<c<<endl;
}
}