输入三个字符,按各字符的ASCII码从小到大的顺序输出这三个,但我的在acm练习里通过不了

#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;

}