为什么简易计算器答案不对,求解析


#include <stdio.h>

int main () {
    int a, b, sum ;
    char c;
    scanf("%d", &a);
    c = getchar();
    while (c != '=') {
        scanf("%d", &b);
        if (c == '/' && b == 0)
            printf("ERROR");
        switch (c) {
            case '+':
                sum = a + b;
                break;
            case '-':
                sum = a - b;
                break;
            case '*':
                sum = a * b;
                break;
            case '/':
                sum = a / b;
                break;
            default:
                printf("ERROR");
                break;
                return 0;
        }
        c = getchar();
        a = sum;
        
    }

    printf("%d", a);
    return 0;
}

img

12行 判断是除法 b=0 print之后,应该加一行 continue 不进行下边的switch 要不然你判断不能算 还是继续算 所以分母为0错了。
特殊字符 需要判断a,b为 0到9之间的字符 a>=0&&a<=9&&b>=0&&b<=9 之类的