ASCII码排序 oj 上下两个代码有什么不一样么,为什么上面正确下面错误

#include
int main(void)
{
char t, a, b, c, ch;

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);
    scanf("%c",&ch);
}

return 0;

}

#include
int main(void)
{
char x, y, z, i, ch;

while(scanf("%c%c%c", &x, &y, &z)!=EOF)
{
    if(x>y)
    {
        i=x;
        x=y;
        x=i;
    }
    if(x>z)
    {
        i=x;
        x=z;
        z=i;
    }
    if(y>z)
    {
        i=y;
        y=z;
        z=i;
    }
    printf("%c %c %c\n", x, y, z);
    scanf("%c",&ch);
}

return 0;

}

1个回答

 char t, a, b, c, ch;
这些变量没有初始值,而且变量定义的顺序(t在前,而第二个程序i在后)不同
while(scanf("%c%c%c", &a, &b, &c)!=EOF)
这里如果输入的格式不同,那么可能a b c中的一个或者几个没有正确赋值

如果两者叠加,可能造成程序结果不同,碰巧第一个对了。

除此之外,两个程序没有什么区别
qq_15556277
pokerjest 谢谢你,学长帮我找出来了,我的第一个if错了。。。
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问