在编译器上两个例子都是正确的,但是提交答案却全是错的,为什么

img

img


#include<stdio.h>
int main()
{
    int a,b,c,t;
    scanf("%d%d%d",&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;
    }
    getchar();
    int i=0;
    char d[3];
    for(i=0;i<3;i++)
    {
        scanf("%c",&d[i]);
        if(d[i]=='A')
        printf("%d",a);
        else if(d[i]=='B')
        printf("%d",b);
        else if(d[i]=='C')
        printf("%d",c);
        if(i+1!=3)
        printf(" ");
    }
    return 0;
}

修改如下,供参考:

#include <stdio.h>
int main()
{
    int a[3], i, j, t;
    char ch[4];
    for (i = 0; i < 3; i++)
    {
        scanf("%d", &a[i]);
        if (i > 0)
        {
            for (j = 0; j < i; j++)
            {
                if (a[i] < a[j])
                {
                    t = a[i]; a[i] = a[j]; a[j] = t;
                }
            }
        }
    }
    scanf("%s", ch);
    printf("%d %d %d",a[ch[0]-'A'], a[ch[1]-'A'], a[ch[2]-'A']);
    return 0;
}

你可以把if的大括号都加上试试 然后其实有一种函数叫swap(a,b)可以交换ab两数的值,还有我记得好像scanf输入数组可以不加取地址符来着(这个我不太了解)
以上是代码方面的建议,以下是关于玄学
你可以在提交的时候把编译语言版本换一下
还有一个笑话叫做“我过了样例”