我正在用C + + * /运算符制作一个简单的计算器。我尝试制作一个计算器,但是使用do..while时遇到了一些问题。我认为while (op != 'A', 'Q', 'M', 'D', 'S');是不正确的。我在这里需要什么?

#include<stdio.h>

int main(void)
{
    int x, y, result;
    char op;

    printf("****************\n");
    printf("A-----Add\n");
    printf("S-----Substract\n");
    printf("M-----MUltiply\n");
    printf("D-----Divide\n");
    printf("Q-----Quit\n");
    printf("****************\n");

    printf("Enter the operation:");
    scanf("%c", &op);
    printf("Enter the two variables:");
    scanf("%d %d", &x, &y);

    do {

        if (op == 'A')
            result = x + y;
        else if (op == 'S')
            result = x - y;
        else if (op == 'M')
            result = x*y;
        else if (op == 'D')
            result = x / y;
        else if (op == 'Q')
            break;
    } while (op != 'A', 'Q', 'M', 'D', 'S');

    printf("%d %c %d = %d\n", x, op, x, result);

    return 0;
    }

最佳答案

!=是二进制运算符,它的左边是一个值,右边是一个值。您无法仅通过在右侧列出多个值来一次比较多个值。

要使此代码以最小的变化工作,您可以分别将op与每个变量进行比较,然后使用标准逻辑运算符(例如&&)组合它们。

您还需要考虑代码的逻辑。您正在使用do ... while循环,这意味着代码将至少运行一次,并且每次到达结尾时,如果while条件为true,则它将再次运行。第一次运行后会发生什么?如果未指定任何用户输入(op),会发生什么情况?而且您有一个“退出”选项,但是使用它会怎样?

关于c - 用C语言制作简单的计算器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33110940/

10-16 14:16