刷题收获:ZOJ-1001-A+B Problem
输入A B,输出和。
第一次:错误。
#include <stdio.h>
int main()
{
int a, b;
scanf("%d %d",&a, &b);
printf("%d\n", a + b);
return 0;
}
我认真的读了读题,觉得可能他需要连续的计算,所以加了个while循环,如下:
第二次:超时。
#include <stdio.h>
int main()
{
int a, b;
while(1){
scanf("%d %d",&a, &b)
printf("%d\n", a + b);
}
return 0;
}
emmmm,我不理解了,看了一下正确答案,如下:
#include <stdio.h>
int main()
{
int a, b;
while(scanf("%d %d",&a, &b) != EOF) //判断是否是文件结尾
printf("%d\n", a + b);
return 0;
}
收获:
scanf函数返回成功读入的数据项数,读入数据时遇到了“文件结束”则返回EOF。
如:scanf("%d %d",&a,&b);
函数返回值为int型。
-
如果a和b都被成功读入,那么scanf的返回值就是2;
-
如果只有a被成功读入,返回值为1;
-
如果a和b都未被成功读入,返回值为0;
-
如果遇到错误或遇到end of file,返回值为EOF。
end of file为Ctrl+z 或者Ctrl+d。