#include<stdio.h> int main() { int a,b; while(scanf("%d %d",&a,&b)==2) printf("%d\n",a+b); return 0; }
解题思路:
函数返回值为 int 型。如果a和b都被成功读入,那么 scanf 的返回值就是2;
1、在Windows下,用户按下CTRL+Z(会看到一个^Z字符),会停止输入流,scanf会返回-1。
2、-1的补码为11111111 11111111 11111111 11111111 一共4个字节。
3、~是C语言中的按位取反,因此~(-1)结果为00000000 00000000 00000000 00000000刚好为整数0的补码。
4、因此当输入Ctrl+Z时,scanf会返回-1,while(~-1)==while(0),0为假,退出while循环。
while(~scanf("%d%d", &a, &b))
while((scanf("%d %d", &a, &b))!=EOF)
EOF代表while 循环的判断条件才为0 才能结束循环
参考代码:
0.0分
0 人评分
求圆的面积 (C语言代码)浏览:1756 |
回文数字 (C语言代码)浏览:2539 |
C二级辅导-求偶数和 (C语言代码)浏览:707 |
单词个数统计 (C语言代码)浏览:1046 |
淘淘的名单 (C语言代码)浏览:1309 |
C语言程序设计教程(第三版)课后习题6.7 (C语言代码)浏览:725 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:465 |
小O的数字 (C语言代码)浏览:1490 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:586 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:559 |