杭电a+b的一道简单题 不知道为什么就是不过 wrong answer 请问为什么 能帮我改下么?

A+BforInput-OutputPractice(III)TimeLimit:2000/1000MS(Java/Others)MemoryLimit:65536/32... A+B for Input-Output Practice (III)

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 6087 Accepted Submission(s): 3564

Problem Description

Your task is to Calculate a + b.

Input

Input contains multiple test cases. Each test case contains a pair of integers a and b, one pair of integers per line. A test case containing 0 0 terminates the input and this test case is not to be processed.

Output

For each pair of input integers a and b you should output the sum of a and b in one line, and with one line of output for each line in input.

Sample Input

1 5
10 20
0 0

Sample Output

6
30

#include <stdio.h>
int main()
{
int a,b;
while(scanf("%d %d",&a, &b) &&(a!=0 && b!=0))
printf("%d\n",a+b);
}
展开
 我来答
Mr_Yang2012
推荐于2016-12-02 · TA获得超过1647个赞
知道小有建树答主
回答量:392
采纳率:0%
帮助的人:487万
展开全部
#include <stdio.h>
int main()
{
int a,b;
while((scanf("%d %d",&a, &b)!=EOF) &&(a!=0 && b!=0))
printf("%d\n",a+b);
}
这样改就对了,或者是这样:
#include <stdio.h>
int main()
{
int a,b;
while(scanf("%d %d",&a, &b)!=EOF){
if(a==0&&b==0) break;
printf("%d\n",a+b);}
return 0;
}
条件应该是:~scanf("%d %d",&a, &b)或scanf("%d %d",&a, &b)!=EOF
如果是while(scanf("%d %d",&a, &b))会构成死循环的!
追问
~scanf("%d %d",&a, &b)或scanf("%d %d",&a, &b)!=EOF 
都试过了 还是wrong answer
用if判断在跳出倒是可以 但是我实在是想不通为什么写到一起就不行??
追答
确实是WA,你试试0 1这组数据,程序直接退出了,因为(scanf("%d %d",&a, &b)!=EOF) &&(a!=0 && b!=0)此时表达式为假,因为是a!=0 && b!=0这个表达式只要a、b有一个为0表达式就为假(这个是a!=0和b!=0同为真,a!=0 && b!=0才为真的,开始我也没注意,抱歉)。因此导致整体(scanf("%d %d",&a, &b)!=EOF) &&(a!=0 && b!=0)为假。是后面a!=0 && b!=0这个表达式为假导致的。应该这样写就对了:
#include
int main()
{
int a,b;
while((scanf("%d %d",&a, &b)!=EOF) &&(!(a==0 && b==0)))
printf("%d\n",a+b);
}
这样就AC了!
!(a==0 && b==0)用这个就对了!当a和b均为0时(a==0 && b==0)为真,取非就是假了,反之a、b不都为0或都不为0时(a==0 && b==0)显然为假,那么这时!(a==0 && b==0)就为真了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式