用c语言编写一个多次使用的计算器,能实现加减乘除,累加(1到n),阶乘(n!)。

#我的初步解题思路如下

img


用的软件是vc6.0 运行环境是win10

该回答通过自己思路及引用到各个渠道搜索综合及思考,得到内容具体如下。

以下是一个使用 C 语言编写的控制台多次使用的计算器,可实现加减乘除、累加和阶乘等功能。在 VC6.0 中,您可以创建一个新的控制台项目,然后将以下代码复制并粘贴到 main.c 文件中。具体代码如下:

#include <stdio.h>

// 加法
double add(double a, double b) {
    return a + b;
}

// 减法
double sub(double a, double b) {
    return a - b;
}

// 乘法
double mul(double a, double b) {
    return a * b;
}

// 除法
double div(double a, double b) {
    return a / b;
}

// 累加(1 到 n)
double sum(double n) {
    double s = 0;
    for (int i = 1; i <= n; i++) {
        s += i;
    }
    return s;
}

// 阶乘(n!)
double fact(double n) {
    double f = 1;
    for (int i = 1; i <= n; i++) {
        f *= i;
    }
    return f;
}

int main() {
    char op;
    double a, b, n;
    while (1) {
        printf("Please enter an operator (+, -, *, /, s, f) and operands (separated by spaces):\n");
        scanf("%c", &op);
        if (op == 's' || op == 'f') {
            scanf("%lf", &n);
        } else {
            scanf("%lf%lf", &a, &b);
        }

        switch (op) {
            case '+':
                printf("%.2f + %.2f = %.2f\n", a, b, add(a, b));
                break;
            case '-':
                printf("%.2f - %.2f = %.2f\n", a, b, sub(a, b));
                break;
            case '*':
                printf("%.2f * %.2f = %.2f\n", a, b, mul(a, b));
                break;
            case '/':
                printf("%.2f / %.2f = %.2f\n", a, b, div(a, b));
                break;
            case 's':
                printf("1 + 2 + ... + %.0f = %.0f\n", n, sum(n));
                break;
            case 'f':
                printf("%.0f! = %.0f\n", n, fact(n));
                break;
            default:
                printf("Invalid operator!\n");
                break;
        }

        // 清空输入缓冲区,防止读取到无效字符
        while (getchar() != '\n');

        printf("\n");
    }

    return 0;
}

在该代码中,我们定义了加法、减法、乘法、除法、累加和阶乘等函数,然后在主函数中使用 switch 语句根据用户输入的操作符调用相应的函数进行计算。使用 while 循环使程序可以多次使用,直到用户手动退出。

您可以在 VC6.0 中编译并运行该程序,然后根据提示进行操作。注意要对输入进行错误处理,例如在除数为零时应该给出错误提示。


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

你这个程序的问题在于2点
一个是没有对除以0判断,一不小心,程序就挂了
另一个是n是单个字符,不能判断++
你用字符串、scanf和strcmp代替吧。