华为机试——取近似值
题目描述
写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。
输入描述:
输入一个正浮点数值
输出描述:
输出该数值的近似整数值
示例1
输入
5.5
输出
6
我的破代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
using namespace std;
int main(){
double num;
cin>>num;
int num2=(int(num*10))%10;
int num1=num;
if(num2>=5)cout<<num1+1<<endl;
else cout<<num1<<endl;
return 0;
}
其他人的代码:(看看人家)
#include <stdio.h>
int main(void)
{
double num;
scanf("%lf",&num);
printf("%d",(int)(num + 0.5));
return 0;
}
本文介绍了一道华为机试题目“取近似值”的解决方案。题目要求根据输入的正浮点数,输出其近似整数值。文中提供了两种实现方式,一种使用条件判断手动计算,另一种则采用加0.5后转整型的方法。

被折叠的 条评论
为什么被折叠?



