题解 | #取近似值#

取近似值

https://www.nowcoder.com/practice/3ab09737afb645cc82c35d56a5ce802a

#include <stdio.h>
int main(void){
    float fudian;
    while(scanf("%f", &fudian) != EOF){
        int result = (int)fudian;
        if(fudian - result >= 0.5){
            result++;
        }
        printf("%d\n", result);
    }
}

一、问题分析

首先读题,仔细看描述中的内容发现需求是

1.接受一个正浮点数值

2.对这个数值进行取整,小数点后一位数字四舍五入

范围:32位浮点数

二、解题思路

1.首先我们需要接受这个正浮点数,使用float类型即可

2.对这个数字进行取整(可以直接printf("%.0f",要取整的数字))其中.后面的数字代表保留几位小数,自动四舍五入

三、具体步骤

使用的语言是C

先引入输入输出库#include <stdio.h>

开始主程序int main(void){

定义一个float fudian;

读取输入while(scanf("%f", &fudian) != EOF){

输出printf("%.0f\n", fudian);

}

}

实际输入的时候,错了

当输入为4.5的时候这个代码的结果是4而不是5,

看来还需要做一下检查,先把fudian转化为int

定义一个int result来作为= (int)fudian;的变量容器

然后我们做一下比较,因为int会直接把小数点后的数字变成没有所以

如果if(我们fudian - result >= 0.5){证明我们的小数部分大于等于0.5,需要入一位

result++;入一位

}

之后还需要注意的是,这回我们输出的就是整数result了

全部评论

相关推荐

点赞 评论 收藏
分享
铁锈不腻玩家:下面那个袁先生删了,问他怎么回事,头像都换不明白
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务