c - 用C语言制作简单的计算器

标签 c

我正在用 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条件为真。第一次运行后会发生什么?如果用户输入 (op) 不是指定的选项,会发生什么情况?并且您有一个“退出”选项,但是使用它时会发生什么?

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

相关文章:

c - 将 % 的值拆分为多个字符

c - 如何确定双向链表成为比简单链表更好的解决方案的点?

php - 用于 ping Web 服务器的服务

c - 二维数组和指向指针的指针

c - 为什么我的 bison/flex 没有按预期工作?

c - 拒绝与服务器的连接 C 套接字编程

C 性能和函数参数的选择

c - 在 C 中使用作用域

c++ - 包含 malloc 声明的头文件的名称是什么?

c++ - C/C++ time.h,错误的时间打印出来,时间的比较