我的问题出在最后不能输出带两位小数的真实答案。网上看见了两个C++的回答,没审清题。这是我第一次写博客,学C++的第三周,几年以后再返回来看看。
7-10 算术入门之加减乘除 (10 分)
对于输入的两个整数,按照要求输出其和差积商。
输出格式:
共四行,格式是:
[a] + [b] = [a+b]
[a] - [b] = [a-b]
[a] * [b] = [a*b]
[a] / [b] = [a/b]
其中,带有方括号的内容(如[a]
、[b]
、[a+b]
等)表示相应整数或运算结果的值,在输出时要用实际的值代替。
并且:如果a能够被b整除,那么a/b应输出为整数格式,否则a/b输出为带两位小数的格式。
输入样例
8 6
输出样例
8 + 6 = 14
8 - 6 = 2
8 * 6 = 48
8 / 6 = 1.33
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
int a, b;
cin >> a >> b;
cout << a << " + " << b << " = " << a + b << endl;
cout << a << " - " << b << " = " << a - b << endl;
cout << a << " * " << b << " = " << a * b << endl;
if (a % b == 0)
{
cout << a << " / " << b << " = " << a / b << endl;
}
else {
cout << a << " / " << b << " = " <<fixed<<setprecision(2)<< double(a / (b*1.0)) << endl;
}
return 0;
}
else的执行语句里面不写fixed<<setprecision(2)会导致输出的结果小数点后默认六位数;
不写double会导致直接输出整数;
不在b后写*1.0或者1.00会导致输出结果并非真实的小数,例如会输出1.00。
b*1.0 1.00 几位零都可以保证输出1.33,因为前面限制了精度为2.