2025-03-20 学习记录--C/C++-PTA 习题6-7 简单计算器

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻

一、题目描述 ⭐️

习题6-7 简单计算器

模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。

输入格式:
输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。

输出格式:
在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。

输入样例:

1+2*10-10/2=

输出样例:

10

二、代码(C语言)⭐️

#include <stdio.h>  // 引入标准输入输出库,用于使用 printf 和 scanf 等函数

int main() {
    int result = 0; // 初始化计算结果,初始值为 0
    int num;       // 用于存储当前操作数
    char opt;      // 用于存储当前操作符
    char ch;       // 用于临时存储输入的字符

    // 因为题目说明至少有一个操作数,所以先获取第一个操作数
    scanf("%d", &result);

    // 进入循环,处理后续的操作符和操作数
    while (1) {
        ch = getchar(); // 读取一个字符(可能是操作符或等号)
        if (ch == '=') { // 如果读取到等号,结束输入
            break;
        }

        // 检查读取的字符是否是合法的操作符
        if (ch == '+' || ch == '-' || ch == '*' || ch == '/') {
            opt = ch; // 如果是合法操作符,存储到 opt 中
        } else {
            printf("ERROR"); // 如果是非法字符,输出错误信息
            return 0;       // 结束程序
        }

        // 读取下一个操作数
        scanf("%d", &num);

        // 根据操作符执行相应的计算
        switch (opt) {
            case '+':
                result += num; // 加法
                break;
            case '-':
                result -= num; // 减法
                break;
            case '*':
                result *= num; // 乘法
                break;
            case '/':
                if (num == 0) { // 检查除数是否为 0
                    printf("ERROR"); // 如果除数为 0,输出错误信息
                    return 0;       // 结束程序
                } else {
                    result /= num; // 除法
                }
                break;
        }
    }

    // 输出最终的计算结果
    printf("%d", result);

    return 0; // 程序正常结束
}

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小呀小萝卜儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值