#include <iostream>
using namespace std;
int main()
{
int n, num;
int sum = 0;
cin>>n;
for(int i=0; i<n; i++)
{
cin>>num;
if (num % 2 == 0)
sum += num;
}
cout<<sum;
return 0;
}
while(num%2==0)这里出错了
应该用上面一样的for循环,里面写if(num%2==0)sum+=num;
否则只要中间出现一个奇数,循环直接终止了,后面的偶数得不到累加
或者不用另外循环,一边输入一边就判断累加完了,输入完得数也出来了
在每次输入之后都应该判断是否为偶数,是偶数就求和。你那样写只会判断你最后一次输入的数。
代码如下
#include <iostream>
using namespace std;
int main()
{
int n, num;
int sum = 0;
cin >> n;
for (int i = 0; i < n; ++i) //循环输入
{
cin >> num;
if (num % 2 == 0) //每一次输入判断是不是偶数
{
sum += num;
}
}
printf("%d", sum);
return 0;
}
你这样变量int num只会等于你最后输入的值,只判断你最后输入的值,是要将判断偶数的条件放到for循环里