蓝色的天空


私信TA

用户名:lansedetiankong

访问量:432

签 名:

等  级
排  名 38429
经  验 397
参赛次数 0
文章发表 6
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

TA的其他文章

#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 人评分

  评论区

  • «
  • »