我想在C中编程基本计算器:
我有累加器的问题(使用“+”和“-”运算符)

int main(void)
{
    float num1,num2,res;
    char operator;

    printf ("Type in your expression.\n");
    scanf ("%f %c %f", &num1, &operator, &num2);

    if(operator == 'S'){
        printf(" = %.2f\n",num1);
        res = num1;
        while(1){
            printf ("Type in your expression.\n");
            scanf ("%c %f", &operator, &num2);
            if(operator == '+'){
                res += num2;
                printf("%.2f\n", res);
            }
            else if(operator == '-'){
                res -=num2;
                printf("%.2f\n",res);
            }
            else if(operator == '*'){
                res *=num2;
                printf("%.2f\n",res);
            }
            else if(operator == '/'){
                if(num2 == 0)
                    printf("Division by zero\n");
                else
                    res /=num2;
                    printf("%.2f\n",res);

            }
            else if(operator == 'E'){
                printf("End of the calculation:");
                printf("%.2f",res);
                break;

            }
        }
    }

在这部分代码中,除法和乘法可以正常工作:
但是,当我在累加器期间像“+3”或“-2”那样踩水时,什么也没发生。我不知道问题出在哪里。

最佳答案

我认为这是因为在以下命令中:

scanf ("%c %f", &operator, &num2);

当程序等待读取一个运算符和一个数字时键入+3时,它将+3作为数字而不是+作为运算符并将3作为数字。因此,您必须给+ 3(以空格分隔)。我尝试了,我认为它有效!!

关于c - 用C语言编写的计算器(累加器),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39332231/

10-10 15:18