oj1017:你会四舍五入吗?
题目出处:
http://oj.ecustacm.cn/problem.php?id=1017
题目描述:
学C语言了,可以编程解决很多问题,但没有一个C语言中的函数能完成四舍五入。
请编程解决这个问题。如输入2.055 0.154 10.159 99.999,则输出2.06 0.15 10.16 100.00
输入格式:
输入有若干行,每行一个浮点数x,都是三位小数
输出格式:
输出四舍五入后的两位小数x。
样例输入:
2.055
0.154
10.159
99.999
3.565
样例输出:
2.06
0.15
10.16
100.00
3.57
***解析:***刚开始想用模拟去做,后来一直WA,然后想到了round函数可以实现四舍五入,再看题目的输入数据都是三位小数,所以可以先乘以100再用round函数进位,就AC了,AC代码如下所示。
代码:
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int main()
{
double num;
while(cin>>num)
{
num=round(num*100+0.05)/100.0;
printf("%.2f\n",num);
}
return 0;
}