求助 有一个不通过
5102查看
Yirrl
2025-02-27 10:53

大佬帮帮我为什么有一个例子不通过呢? using namespace std; int main() { int t; cin >> t; for (int i = 0; i < t; i++) { int n,count=0,sum=0; cin >> n; vectorwu(n); for (int i = 0; i < n; i++) { cin >> wu[i]; if (wu[i]++ == 0)count++; sum+=wu[i]; } if (sum == 0)count++; cout << count << endl; } return 0; }

全部回复(1)
ErikTse
2025-03-15 02:08
#include <bits/stdc++.h>
using namespace std;
int main() {
    int t;
    cin >> t;
    for (int i = 0; i < t; i++) {
        int n, count = 0, sum = 0;
        cin >> n;
        vector<int> wu(n);
        for (int i = 0; i < n; i++) {
            cin >> wu[i];
            // if (wu[i]++ == 0) count++; 修改为
            if(wu[i] == 0)count ++, wu[i] ++;
            sum += wu[i];
        }
        if (sum == 0) count++;
        cout << count << endl;
    }
    return 0;
}
copy

如果把自增放到if里面的话,会导致无论条件是否成立,都使得wu[i] ++,那么可能导致sum计算出错。

回复
你的回复