- @[toc]
- C语言程序设计:模拟简单运算器的工作
- 1.题目
- 2.分析
- 3.代码实现
- 4.结尾
1.题目
模拟简单运算器的工作,输入一个算式(没有空格),遇等号"="说明输入 结束,输出结果。假设计算器只能进行加、减、乘、除运算,运算数和结果都是整数,4 种运算符的优先级相同,按从左到右的顺序计算。例如,输入 1+2*10-10/2=后,输出10。试编写相应程序。其中的运算部分要求定义函数实现。
2.分析
1).首先他要求我们是输入一个算式,格式为:【1+2/3*4-5=】 ,输入输出结果都为整数
2).计算结果为 -1 ,忽略运算符的优先级,从左往右进行计算
3).算式中含有【=】才说明输入结束,否则可以一直输入
3.代码实现
void calculate() { while (1) { char ch; int a, sum; a = sum = 0; int b = 1; scanf_s("%d", &a); sum = a; while (1) { ch = getchar(); if (ch == '=') { printf("result = %dn", sum); b = 0; break; } scanf_s("%d", &a); switch (ch) { case '+':sum += a; break; case '-':sum -= a; break; case '*':sum *= a; break; case '/': if (a == 0) { printf("errorn"); b == 0; } else sum /= a; ; break; default: b = 0; printf("may be you should input =n"); break; } if (b == 0) break; } } return 0; } int main() { calculate(); return 0; }
4.结尾
此代码有BUG,输入错误之后得第一次运行结果是会出错的,第一次接触C语言,不知道如何写,欢迎大佬指正。。。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)