Y14332232333 2023-04-04 10:24 采纳率: 100%
浏览 45
已结题

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

#我的初步解题思路如下

img


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

  • 写回答

3条回答 默认 最新

  • Leodong. 2023-04-04 10:31
    关注

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

    以下是一个使用 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条)

报告相同问题?

问题事件

  • 系统已结题 4月12日
  • 已采纳回答 4月4日
  • 创建了问题 4月4日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效