取近似值

xiaoxiao2021-02-28  15

题目描述

写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。

输入描述:

输入一个正浮点数值

输出描述:

输出该数值的近似整数值

输入例子:
5.5
输出例子:
6

解题思路

首先将浮点数num分别向下和向上取整,得到两个整数num1和num2,然后比较num与num1和num2的平均值即可。在cmath头文件中,有向下取整函数floor和向上取整函数ceil。当然,将向下取整的值+1就等于向上取整的值。

需要注意的是,虽然题目中说输入的是正浮点数,但是C++并没有unsigned float类型。这是因为硬件不支持unsigned float。

代码

#include <iostream> #include <cmath> using namespace std; int main() { float num = 0; cin >> num; int num1 = floor(num); //向下取整 int num2 = num1 + 1; //向上取整 if (num >= (num1 + num2) / 2.0) cout << num2 << endl; else cout << num1 << endl; return 0; }

转载请注明原文地址: https://www.6miu.com/read-800341.html

最新回复(0)