C语言计算器如何实现多个数连续运算?

99ANYc3cd6
预计阅读时长 14 分钟
位置: 首页 C语言 正文

C语言实现多个数运算的计算器

下面是一个用C语言实现的多个数运算的计算器程序,支持加、减、乘、除四种基本运算,并且可以连续输入多个数字进行运算。

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
// 函数声明
double add(double a, double b);
double subtract(double a, double b);
double multiply(double a, double b);
double divide(double a, double b);
void calculator();
int main() {
    printf("欢迎使用多个数运算计算器\n");
    printf("支持加(+)、减(-)、乘(*)、除(/)运算\n");
    printf("输入'q'退出程序\n\n");
    calculator();
    return 0;
}
// 加法函数
double add(double a, double b) {
    return a + b;
}
// 减法函数
double subtract(double a, double b) {
    return a - b;
}
// 乘法函数
double multiply(double a, double b) {
    return a * b;
}
// 除法函数
double divide(double a, double b) {
    if (b == 0) {
        printf("错误:除数不能为零!\n");
        return 0;
    }
    return a / b;
}
// 计算器主函数
void calculator() {
    double result = 0;
    double num;
    char op;
    char input[100];
    int first_number = 1;
    while (1) {
        printf("当前结果: %.2f\n", result);
        // 获取第一个数字或操作符
        if (first_number) {
            printf("请输入第一个数字: ");
            if (fgets(input, sizeof(input), stdin) == NULL) {
                break; // 读取失败或EOF
            }
            // 检查是否要退出
            if (input[0] == 'q' || input[0] == 'Q') {
                break;
            }
            // 尝试转换为数字
            if (sscanf(input, "%lf", &num) != 1) {
                printf("无效输入,请重新输入数字,\n");
                continue;
            }
            result = num;
            first_number = 0;
            continue;
        }
        // 获取操作符
        printf("请输入操作符(+, -, *, /)或'q'退出: ");
        if (fgets(input, sizeof(input), stdin) == NULL) {
            break; // 读取失败或EOF
        }
        op = input[0];
        // 检查是否要退出
        if (op == 'q' || op == 'Q') {
            break;
        }
        // 检查操作符是否有效
        if (op != '+' && op != '-' && op != '*' && op != '/') {
            printf("无效操作符,请重新输入,\n");
            continue;
        }
        // 获取下一个数字
        printf("请输入下一个数字: ");
        if (fgets(input, sizeof(input), stdin) == NULL) {
            break; // 读取失败或EOF
        }
        // 尝试转换为数字
        if (sscanf(input, "%lf", &num) != 1) {
            printf("无效输入,请重新输入数字,\n");
            continue;
        }
        // 根据操作符执行相应运算
        switch (op) {
            case '+':
                result = add(result, num);
                break;
            case '-':
                result = subtract(result, num);
                break;
            case '*':
                result = multiply(result, num);
                break;
            case '/':
                result = divide(result, num);
                break;
        }
    }
    printf("最终结果: %.2f\n", result);
    printf("感谢使用计算器,再见!\n");
}

程序功能说明

  1. 连续运算:可以连续输入多个数字和操作符进行计算
  2. 支持操作:加(+)、减(-)、乘(*)、除(/)
  3. 错误处理
    • 处理除数为零的情况
    • 处理无效输入
  4. 退出功能:输入'q'可以退出程序
  5. 显示当前结果:每次运算后显示当前结果

使用示例

欢迎使用多个数运算计算器
支持加(+)、减(-)、乘(*)、除(/)运算
输入'q'退出程序
请输入第一个数字: 10
当前结果: 10.00
请输入操作符(+, -, *, /)或'q'退出: +
请输入下一个数字: 5
当前结果: 15.00
请输入操作符(+, -, *, /)或'q'退出: *
请输入下一个数字: 2
当前结果: 30.00
请输入操作符(+, -, *, /)或'q'退出: -
请输入下一个数字: 8
当前结果: 22.00
请输入操作符(+, -, *, /)或'q'退出: q
最终结果: 22.00
感谢使用计算器,再见!

扩展建议

如果需要更复杂的功能,可以考虑:

  1. 添加括号支持以改变运算优先级
  2. 添加更多数学函数(如幂运算、开方等)
  3. 添加内存功能(存储和调用结果)
  4. 添加历史记录功能

这个程序使用了基本的C语言特性,适合初学者学习和理解计算器的工作原理。

-- 展开阅读全文 --
头像
C语言如何获取字符串长度?
« 上一篇 05-02
dede me循环
下一篇 » 05-02

相关文章

取消
微信二维码
支付宝二维码

目录[+]