实验6-8 简单计算器 (20分)

模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。
输入格式:
输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。
输出格式:
在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。
输入样例:
1+2*10-10/2=

输出样例:
10
#include<stdio.h>
int main()
{
int a,b;
int s=0;
char ch;
scanf("%d",&a);
ch=getchar();
while(ch!=’=’) {
scanf("%d",&b);
if(ch==’/’&&b== 0){
printf(“ERROR\n”);
return 0; }
else if(ch==’+’)
s=a+b;
else if(ch==’-’)
s=a-b;
else if(ch==’ * ‘)
s=a * b;
else if(ch==’/’&&b!=0)
{
s=a/b;
}
else {
printf(“ERROR\n”);
return 0; }
a=s;
ch=getchar(); }
printf("%d\n",a);
return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 简单来说,模拟一个运算器需要以下几个步骤: 1. 读入运算数和运算符 2. 按照从左到右的顺序对运算数进行计算 3. 按照加减乘除四种运算符的优先级计算结果 4. 输出结果 例如:计算 "1 + 2 * 3 - 4 / 2" 的值,按照从左到右的顺序,得到: 1. 读入1,当前结果为1 2. 读入"+",读入2,当前结果为3 3. 读入"*",读入3,当前结果为9 4. 读入"-",读入4,当前结果为5 5. 读入"/",读入2,当前结果为2.5 6. 输出结果为2.5 请注意,上述步骤只是简化后的过程,实际实现中还需要考虑更多细节。 ### 回答2: 首先,模拟简单运算器工作需要明确其基本功能,包括输入运算符和运算数,进行计算,输出结果。具体步骤如下: 1. 输入运算数和运算符:从键盘获取用户输入的第一个整数,然后获取运算符,再获取第二个整数。依次输入多个数和运算符,可以使用循环。 2. 进行计算:根据输入的运算符进行相应的计算操作,将计算结果保存到一个变量中。 3. 输出结果:将计算结果输出到屏幕上。 如果用户输入的运算式包含多个运算符,我们可以使用栈来存储运算符和运算数。具体步骤如下: 1. 将运算数和运算符依次入栈,直到遇到等于号。 2. 从栈中依次取出两个数和一个运算符,进行计算,将计算结果再次入栈,直到栈中只剩一个数。 3. 将栈中最后一个数输出到屏幕上。 需要注意的是,在进行除法运算时需要判断除数是否为0,避免出现除以0的情况。 模拟简单运算器工作需要考虑较多细节,其中包括算法、数据结构、输入输出等方面的问题。但总体来讲,实现起来并不困难,只需要仔细运算器的基本功能和流程,逐一实现即可。 ### 回答3: 模拟简单运算器工作,需要涉及以下几个方面: 1. 识别输入的运算表达式,将其划为运算符和运算数,同时进行运算符的优先级判断。 2. 对于加减乘除四种基本运算符,别对应加法、减法、乘法、除法操作,进行数值的运算。 3. 在进行运算的过程中,需要对输入的数值进行类型判断,保证数值的正确性。 4. 最后将运算结果输出。 对于模拟简单运算器工作,首先需要接受运算表达式的输入。输入的表达式需要经过处理,将其按照运算符与运算数的形式划开来。处理的方式可以使用字符串的操作,逐个字符进行扫描,根据运算符对表达式进行拆。例如表达式"2+3*4-5"可以拆为"2"、"+"、"3"、"*"、"4"、"-"、"5"。 接下来,需要对于拆后的运算表达式进行计算。由于加减乘除四种运算符的优先级相同,故需要按照从左到右的顺序进行计算。针对加减乘除四种运算符,需要进行相应的数值计算。例如,对于加法运算,将两个数相加即可;对于乘法运算,需要将两个数相乘;对于除法运算,需要先对除数进行判断,避免除数为零,然后再将除数除以被除数。 在进行数值计算的同时,需要对输入的数值进行类型判断。例如,对于输入的字符串或其他非整数类型的数值,需要进行转换或报错提示。 最后,将计算结果进行输出,即可完成对于简单运算器工作模拟。 总之,模拟简单运算器工作需要对输入表达式进行处理,进行数值的运算并进行类型判断,最后将结果进行输出。运用简单的数学知识和编程技巧,即可完成对于简单运算器工作模拟

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值