关于#c语言#的问题,请各位专家解答!

问题:C语言中的PTA的车牌限行问题

背景:没有任何的提示信息,代码能够在VS2022正常运行,我测试了几个输入都能够输出正确的答案,但是PTA中有一个没有通过,没有找到反例,也没有发现任何报错,除了可能有错误的地方在于printf的输入那块代码。

希望:各位朋友能不能提供一个不能通过的例子或者指出错误的位置,感激不尽。

以下是题目和PTA的报错信息,以及我的代码

img

img


```c
// //车牌限行
#include 
int main()
{
    char lic[10] = { 0 };
    //lic数组用来存储输入的字符
    int flag = 0, i = 0, j, num = 0, odd = 0;
    //flag 用来记录是否出现数字 
    //当flag = 1时有数字
    //num 用来记录没有出现其他字符的次数
    //odd 用来记录最后一个出现的数字是否为奇数
    //当odd = 1时最后一个数字为奇数
    for (i = 0; i < 10; i++)
    {
        scanf("%c", &lic[i]);
        if (lic[i] == '\n')
        {
            break;//当输入回车时退出循环
        }
    }
    if (lic[5] != 0&&lic[5]!=10)//ASCII码“10”代表回车,即'\n'
    {
        flag = 0;
    }
    else
    {
        for (j = 0; j < 5; j++)
        {
            if (lic[j] <= '9' && lic[j] >= '0')
            {
                flag = 1;
                num++;
            }
            (lic[j] <= 'Z' && lic[j] >= 'A') ? (num++) : (j = j);
        }
        ((lic[4] <= '9' && lic[4] >= '0') && (lic[4] % 2)) ? (odd = 1) : (j = j);
    }
    if (num == 5&& flag == 1)
    {
        (odd) ? (printf("限行")) : (printf("通行"));
    }
    else
    {
        printf("非法输入");
    }
    return 0;
}

```

我在Stack Overflow上提问得到解答了,以下是原回答https://stackoverflow.com/a/74793272/20156203

我初步猜测是你默认的是最大输入字符串大小为9,可以适当加大试试,能否ac,另外可否提供一下题目链接。