问题:
while(~scanf("%d",&n))和while(scanf("%d",&n))
有什么区别,为什么用后者超时的时候换成前者就能AC了
答:
scanf()读到输入的结尾时返回值是EOF
一般EOF的值是-1,而不是0
是按位取反,(-1)=0
推荐使用EOF宏定义来判断,以最简单的a+b做例子。
#include<stdio.h>
void main(){
//input
int a=0,b=0;
//scanf函数返回值
while(scanf("%d%d",&a,&b)!=EOF){
printf("%d\n",a+b);
}
}