首页 > 代码库 > C - 简单计算器
C - 简单计算器
题目:
读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。
Input测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。
Output对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。
Sample Input
1 + 2 4 + 2 * 5 - 7 / 11 0
Sample Output
3.00 13.36
解法1:
边读取数据边判断左边的符号,乘除直接计算,加法储存到下一位,减法加负号储存到下一位;
1 #include <iostream>
2 #include <stdio.h>
3
4 using namespace std;
5
6
7
8 int main()
9 {
10 char fu;
11 double temp;
12 double sum;
13 while(1)
14 {
15 sum = 0;
16 double a[200];
17 int i = 0;
18 cin>>temp;
19 fu = getchar();
20 if(temp == 0&&fu == ‘\n‘) break;
21 else if (fu == ‘\n‘) printf("%.2lf\n",temp);
22 else
23 {
24 a[0] = temp;
25 while(cin>>fu>>temp)
26 {
27 if( fu == ‘*‘)
28 a[i] *= temp;
29 if( fu == ‘/‘)
30 a[i] /= temp;
31 if( fu == ‘+‘)
32 a[++i] = temp;
33 if( fu == ‘-‘)
34 a[++i] = -temp;
35 if( getchar() == ‘\n‘)
36 break;
37 }
38
39 for(int t = 0;t <= i;t ++)
40 sum += a[t];
41 printf("%.2lf\n",sum);
42
43 }
44 }
45
46 return 0;
47 }
C - 简单计算器
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。