1906 - 小小计算器
编写一个小小的计算器,能够计算两个浮点数的加、减、乘、除。
题目输入
每行是一个测试用例,每行的内容为:操作数1 运算符 操作数2,操作数为浮点数,运算符为+、-、*、/,操作数和运算符之间有一个空格隔开。
题目输出
对每个测试用例,输出一行计算结果,保留两位小数的精度。如果除法遇到操作数2为0,输出“Divide by zero."。
输入/输出样例
题目输入
1.2 + 3.51 -3 * -2.4 6.4 / 2 5 / 0
题目输出
4.71 7.20 3.20 Divide by zero.
提示
控制输出精度,可以用:
cout << fixed << setprecision(2);
只须执行一次,即对后续的输出的格式都有效。
C语言解答
#include <stdio.h> #include <math.h> int main() { double a, b, s; char c; int Flag; while(scanf("%lf %c %lf", &a, &c, &b)!=EOF) { Flag = 0; switch(c) { case '+': { s = a + b; break; } case '-': { s = a - b; break; } case '*': { s = a * b; break; } case '/': { if(fabs(b) <= 1e-7) { Flag= 1; } else { s = a / b; break; } } } if(!Flag) { printf("%.2f\n", s); } else { printf("Divide by zero.\n"); } } return 0; }
C++解答
#include <iomanip> #include <iostream> using namespace std; int main() { float a,b; char t; cout << setiosflags(ios::fixed)<< setiosflags(ios::left)<<setprecision(2); while(cin >> a >> t >> b) { switch(t) { case '+':cout << a+b;break; case '-':cout << a-b;break; case '*':cout << a*b;break; case '/':if(b==0) cout << "Divide by zero."; else cout << a/b;break; } cout << endl; } return 0; }
提示
控制输出精度,可以用:
cout << fixed << setprecision(2);
只须执行一次,即对后续的输出的格式都有效。