题目描述
写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。
输入描述:
输入一个正浮点数值
输出描述:
输出该数值的近似整数值
示例1
输入
5.5
输出
6
算法实现
实现1
//思路1:使用if来做
#include <iostream>
using namespace std;
int main(int argc, const char * argv[]) {
float x;
while(cin>>x){
int tmp=int(x);
if(x-tmp>=0.5)
cout<<tmp+1<<endl;
else
cout<<tmp<<endl;
}
return 0;
}
实现2
//思路2:+0.5后取整数部分
#include <iostream>
using namespace std;
int main(int argc, const char * argv[]) {
float x;
while(cin>>x)
cout<<(int)(x+0.5)<<endl;
return 0;
}
实现3
//思路3:使用math.h中的round函数
#include <iostream>
#include <math.h>
using namespace std;
int main(int argc, const char * argv[]) {
float x;
while(cin>>x)
cout<<round(x)<<endl;
return 0;
}
小结
第2种方法非常巧妙,第3种是用使用math.h中的round函数。