华为机考HJ7取近似值
只有小数点后一位,所以扩大十倍,让小数点后的数都为0。
然后强制转换成整型,不会影响精度。
强制转换原数的数据类型,无论原数据是什么,都只保留整数部分。
将扩大后的数对10求余,获得的个位是原来的十分位。
然后四舍五入即可。
四舍,原数据直接输出。
五入,原数据加一后输出。
之所以这样做,是为了数据类型统一便于计算。
也有其他算法。这里偷懒用了数据类型强制转换。
#include<stdio.h>
int main()
{
float a;
int b,c,d,e;
while(scanf("%f",&a)!=EOF)
{
e = 10*a;
c = e%10;
b = a;
if(c >= 5)
{
b = b+1;
printf("%d",b);
}
else
printf("%d",b);
}
return 0;
}