一,题目要求:
题目描述:写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后的数值大于等于5,向上取整;小于5,则向下取整。
输入描述:输入一个正浮点数值
输出描述:输出该数值的近似整数值
输入例子:5.5 0.8
输出例子:6 1
二,问题分析:
1,在做这个题目之前我们可以思考一下要是取近似值可以通过什么方法,是不是先可以将该数的整数值与小数值分离
代码如下:
#include <stdio.h>
int main()
{
float x,y;
int z = 0;
printf("请输入所要检测的数据:\n");
scanf("%f", &x);
y = x;
while(y - 1 > 0)
{
y--;
}
z = x - y;
if(y<0.5)
{
printf("%f的近似整数值为:%d", x,z);
}
else
{
z = z + 1;
printf("%f的近似整数值为:%d", x,z);
}
return 0;
}
这个方法就是通过将一个浮点数的整数部分和小数部分分离,然后判断其小数与0.5比较的结果不同,取不一样的近似值。
2,一种比较巧妙的实现方式
#include <iostream>
using namespace std;
int main()
{
float a;
cin>>a;
cout<<int(a+0.5);
return 0;
}