题解 | #实现四舍五入#
实现四舍五入
https://www.nowcoder.com/practice/020a0cf673174d5795d97ae79cff59a0
#include <stdio.h> int main() { int a; float b; scanf("%f",&b); /* 简单理解思路: */ /* 浮点数转换成整形,向左取整(也就是去掉小数部分,保留整数) 四舍五入:这个题有点坑,还要比较负数 如果是整数肯定是小数部分大于0.5的取整,小于0.5的舍弃,利用转换特性可实现 即:加0.5即可,如:11.2 加0.5后变为11.7转换后还是11; 9.8 加0.5后变为10.3转换后为10; 一种极限特例:20.5加0.5后变为21.0转换后为21; 如果是负数再加0.5则会: 假设是-11.2 加0.5后变为-10.7四舍五入后为-10没问题,但如果是-11.7着变成 -11.2四舍五入后变成-11,按理说-11.7应该变成-12(带负号后数字越大,数值越小) 故如果是负数:则减0.5 */ /* 直接比较 */ // if(b > 0) // a = (b+0.5); // else // a = (b - 0.5); /* 三目运算实现 */ if(b > 0) { a = (b+0.5); a = a>b?a:b; } else { a = (b - 0.5); a = a<b?a:b; } printf("%d\r\n",a); return 0; }#C语言基础练习#
C语言之旅 文章被收录于专栏
时光不负,未来可期。