受到楼一大佬的启发,考虑到题目中说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;
}