語法書 / AA 競程語法書 上冊 / 第四單元 / 本單元常犯錯誤總覽

本單元常犯錯誤總覽

# 錯誤描述 類型 ✗ 錯誤寫法 ✓ 正確寫法
1 迴圈邊界差 1(off-by-one) 邏輯錯誤 for (int i=1; i<10; i++) 想輸出 1-10 for (int i=1; i<=10; i++)
2 無窮迴圈 邏輯錯誤 for (int i=0; i<10; i--) for (int i=0; i<10; i++)
3 忘記迴圈更新 邏輯錯誤 while (i < 10) { cout << i; } while (i < 10) { cout << i; i++; }
4 continue 跳過必要操作 邏輯錯誤 continue 後放關鍵程式碼 把程式碼放在 continue
5 break 只離開一層 邏輯錯誤 巢狀迴圈用 break 想跳出兩層 用布林旗標或重新結構化
6 變數範圍超出迴圈 編譯錯誤 for (int i=0;i<10;i++){} cout<<i; 在迴圈外宣告 i
7 混用 ++ii++ 造成 UB 未定義行為 int x = i + ++i; 分開寫:x = i; ++i; x += i;
8 時間複雜度估計錯誤 TLE n = 10^5 時用 O(n^2) 演算法 選擇 O(n) 或 O(n log n)