0
点赞
收藏
分享

微信扫一扫

C++ [PTA]输入输出 7-10。如果a能够被b整除,那么a/b应输出为整数格式,否则a/b输出为带两位小数的格式。

8052cf60ff5c 2022-03-18 阅读 58
c++

我的问题出在最后不能输出带两位小数的真实答案。网上看见了两个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.

举报

相关推荐

0 条评论