描述
写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于 0.5 ,向上取整;小于 0.5 ,则向下取整。
数据范围:保证输入的数字在 32 位浮点数范围内
输入描述:
输入一个正浮点数值
输出描述:
输出该数值的近似整数值
示例1
输入:
5.5
输出:
6
说明:
0.5>=0.5,所以5.5需要向上取整为6
示例2
输入:
2.499
输出:
2
说明:
0.499<0.5,2.499向下取整为2
代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
int n;
double num;
double xiao;
scanf("%lf",&num);
n = (int)floor(num);
xiao = num - n;
if(xiao >= 0.5) {
printf("%d",n+1);
}
else {
printf("%d",n);
}
}
这道题主要学习下c语言中的取整函数:floor
头文件<math.h>
double floor(double x) 该函数返回不大于 x 的最大整数值。
n = (int)floor(num); 注意这里强转下,第一次写的时候没有强转,直接用%d输出存在问题;
double型的数据直接用%d输出智慧取数据的低32位