C递归,Dev上都对,可是一提交全是WA?

P5705 【深基2.例7】数字反转

20307130301wyf @ 2021-01-05 11:21:56

代码如下

#include<stdio.h>
int main(){
    int a;
        if((a=getchar())!='\n'){
           main();
           printf("%c",a);
    }
} 

by AMIRIOX無暝 @ 2021-01-05 11:29:50

首先main递归是ub

验证码meet


by 霜羽 @ 2021-01-05 11:40:19

@20307130301wyf Linux下数据并不等于windows,会多一个\r,在输出上显示为换行,所以if((a=getchar())!='\n')会多读东西


by 霜羽 @ 2021-01-05 11:41:33

可以自己在洛谷IDE上看看,还有,不建议递归main()函数

改完的代码:

#include<stdio.h>
int main(){
    char a = getchar();
        if((a == '.') || (a >= '0' && a <= '9')){
           main();
           printf("%c",a);
    }
    return 0;
}

by 20307130301wyf @ 2021-01-05 17:09:54

@霜羽 原来如此!谢谢!


by williamY @ 2021-05-21 23:42:42

洛谷里不能用getline,不然就全是WA,不用就好了


|