#include
int main()
{
char a,b,c,t;
scanf("%c%c%c",&a,&b,&c);
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",a,b,c);
return 0;
}
程序本身没有什么问题,主要看你的输入了,是不是和acm在线练习里要求的一致。
一般来说,acm里输入的数据都是由空格分隔的,但是你scanf("%c%c%c",&a,&b,&c);
这里三个占位符间并没有空格,就有可能造成非预期的输入。
另外,输出结果的时候,看看题意要求的输出格式,比如数据间是否用空格分隔,结尾是否有换行符等。
#include
int main()
{
char a, b, c;
char z;
while (scanf("%c%c%c", &a, &b, &c) != getchar())
{
if (a > b)
{
z = a;
a = b;
b = z;
}
if (a > c)
{
z = a;
a = c;
c = z;
}
if (b > c)
{
z = b;
b = c;
c = z;
}
printf("%c %c %c\n", a, b, c);
}
return 0;
}