代碼邏輯要求對每組數據獨立計算總和,但輸出結果明顯偏大 (包含上一組數據的殘留值)。
for (int i = 0; i < n; i++) {
// 讀取數據...
for (int j = 0; j < m; j++) {
sum += data[j]; // ❌ sum 未在外層循環開始時歸零
}
cout << sum << endl;
}
for (int i = 0; i < n; i++) {
int sum = 0; // ✅ 在外層循環開始時初始化/歸零
// 讀取數據...
for (int j = 0; j < m; j++) {
sum += data[j];
}
cout << sum << endl;
}
| 習慣 | 示例 |
|---|---|
| 就近聲明初始化 | `for (int i=0; i |
| 使用有意義的變量名 | `currentGroupSum` 而非 `sum` |
| 單元測試覆蓋邊界 | 測試 n=1, n=2, 空數據、單元素數據 |
| Code Review 關注點 | 所有累加器是否在正確作用域初始化 |
「累加變量未在循環開始時歸零」是新手最常見的邏輯錯誤之一。**將累加器聲明並初始化在需要重置的循環體內部**,配合**單步調試觀察變量生命周期**,可徹底避免並快速定位此類問題。