0

我有一个关于矩阵运算的作业,我无法弄清楚我的代码有什么问题,这使得我的程序说 char 是错误的,即使它是正确的。请你帮助我好吗?谢谢你。

if(scanf(" %c", &symbol) == 1)              //input symbol with error handling
    {
        if (symbol != '*' || symbol != '+' || symbol != '-')
        {
            printf("[%c]\n", symbol);
            fprintf(stderr, "Error: Chybny vstup [Symbol]!\n");
            return 100;
        }
    }  

在此处输入图像描述

4

1 回答 1

1

您需要使用逻辑 AND 运算符&&而不是逻辑 OR 运算符||

if (symbol != '*' && symbol != '+' && symbol != '-')

否则 if 语句的条件

if (symbol != '*' || symbol != '+' || symbol != '-')

对于任何字符,将始终评估为逻辑真。

如果您按以下方式使用否定运算符,则可以避免错误

if ( !( symbol == '*' || symbol == '+' || symbol == '-' ) )
于 2021-12-03T19:54:04.957 回答