受到楼一大佬的启发,考虑到题目中说a>=0,故应该不是负数引起的wa。 再看原来的代码 向下取整为:
int(a);
向上取整为
int(a)+1;
乍一看没啥问题,就是把浮点数转换成int,那么就自动舍弃了小数位。 但是这仅仅针对了小数来说,如果题目给的数本身就是个整数那么这样就出大问题。故特判一下是不是整数即可。 下面是ac代码
#include<iostream>
using namespace std;
int main()
{
double a;
cin >> a;
if(a==(int)a) cout << a << endl << a;//如果转换为int还是和本身相等,那么它就是整数
else cout << (int)a << endl << (int)a+1;
return 0;
}