虽然是简版,但是得理清思路!
C99 标准函数库中引入了舍入函数 round,用于对小数作四舍五入处理。作为练习,我们自己编写一个功能与之相同的函数。
double Round(double x);
说明:参数 x 是任意实数,函数值为四舍五入后的“整实数”(小数部分为零的实数)。
裁判程序
#include <stdio.h>
#include <math.h>
double Round(double x);
int main()
{
double x, y;
scanf("%lg", &x);
y = Round(x);
printf("%.15g\n", y);
return 0;
}
......
/* 你提交的代码将被嵌在这里 */
输入样例1
-0.43
输出样例1
0
输入样例2
184.52
输出样例2
185
输入样例3
15374093826.63
输出样例3
15374093827
double Round(double x)
{
if(x==0)//x=0时,输出0;
return 0;
else if(x-floor(x)<0.5)//对于正数小数点后小于0.5时,舍。对于负数,此处为入。
return floor(x);
else if(x>0)
{
if(x-floor(x)>=0.5)//x>0时,此时小数点后大于0.5,入。
return floor(x)+1;
}
else//x<0时,此时小数点后小于0.5。例-1.4-(-2)=0.6;此时舍。
{
if(x-floor(x)>0.5)
return floor(x)+1;
}
}