想问问为什么全wa,大佬们求解

P4414 [COCI2006-2007#2] ABC

ll0610 @ 2024-11-27 15:57:15

int main()
{
    int i,a,b,c,j,temp;
    int d[3];
    for(int m=0;m<3;m++)
    {
        scanf("%d",&d[m]);
    }
    for(i=1;i<3;i++)
    {
        for(j=0;j<3-i;j++)
        if(d[j]>d[j+1])
        {
            temp=d[j];
            d[j]=d[j+1];
            d[j+1]=temp;
        }
    }
    char s[3];
        scanf("%s",s);
    for(int r=0;r<3;r++) 
    {
        switch(s[r])
        {
            case'A':
                printf("%d\0",d[0]);
                break;
            case'B':
                printf("%d\0",d[1]);
                break;
            case'C':
                printf("%d\0",d[2]);
                break;
        }
    }
    printf("\n");
    return 0;
}

by Kristoph_Gavin @ 2024-11-27 16:18:30

@ll0610

越界了。char s[3]; 改成 char s[4]; 就过了


by ll0610 @ 2024-11-27 16:26:55

@Kristoph_Gavin可以具体问问为什么嘛?


by ll0610 @ 2024-11-27 16:31:15

@Kristoph_Gavin好像还是不行


by Justskr @ 2024-11-27 21:01:33

一共有俩错误啊。

第一个是你输出连空格都没加。。。。

第二个是字符的输入,由于输入具有空格,所以如果你直接输入字符串的话是接受不到数据的。

将你的

scanf("%s",s);

改成

for(int i = 0 ;i < 3;i++) cin >> s[i];

就好了


|