题目描述
任意给出一个小数,编程求不小于它的最小整数与不大于它的最大整数。
即求出这个小数往下取整与往上取整的值
输入描述
输入一行,包含一个浮点数a,保证a≥0
输出描述
输出两行,第一行表示a往下取整,第二行表示a往上取整
示例1
输入
3.5
输出
3
4
分析
备注:
ceil(x)函数返回大于等于x的最小double类型整数 例如:ceil(3.8) 返回 4.0需要将向上取整的数在用ceil转换后需要将其转换为整型,不然会出错
代码
#include<stdio.h> #include<math.h> int main() { double a; scanf("%lf",&a); printf("%d\n%d",int(a),int(ceil(a))); return 0; }
不用ceil函数方法,可以通过int(a+0.9)通过,但存在漏洞,如果a=0.01,则结果不对,所以需要额外加上条件判断,当int(a)=a,都输出int(a),否则向上输出int(a+1)。
但此题用以下方法即可通过牛客的判断