c语言一道题目。输入一组数字,以0或负数为结束标志,求这组数字中的

c语言一道题目。输入一组数字,以0或负数为结束标志,求这组数字中的偶数和,怎么写啊?

#include<stdio.h>

int main()
{

   int num,sum=0;
   while(scanf("%d",&num)&&num>0)
   {
       if(num%2==0)
        sum+=num;
   }
    printf("偶数和为:%d\n",sum);
   return 0;
}

追问

#include
int main () {
int a,b,c;
while (scanf("%d",&a)>0) {
b=a%2;
if (b==0)
c=c+a; }
printf ("%d",c);
}

我是这样写的,为什么要加上&&呢

追答

你这个不会结束吧,scanf的返回值是正确输入的个数。也就是说即使你最后输入的是-1,那返回值也是1吧,并不是你想象的返回值为a的值。你知道这种写法,说明你是搞ACM的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-01-07
#include <stdio.h>
int main()
{
    int num;
    int sum=0;
    scanf("%d",&num);
    while(num>0)
    {
        if(num%2==1)
        {
            num=0;
        }
        sum+=num;
        scanf("%d",&num);
    }
    printf("%d",sum);
    
    return 0;
}

相似回答