请问我这个代码哪里写错了

img


我的代码:

img


是要把计数放在for循环里吗
感觉循环学懂了
但是不会实际应用

#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循环里