語法書 / AA 競程語法書 下冊 / 第十三單元 / 本單元常犯錯誤總覽

本單元常犯錯誤總覽

# 錯誤 類型 錯誤範例 正確寫法
1 行列寫反 邏輯錯誤 a[j][i] a[i][j]:列在前、行在後,變數固定配對
2 先讀陣列再判邊界 UB/RE grid[nr][nc] != '#' && inside(nr, nc) inside(nr, nc) && grid[nr][nc] != '#'
3 方向表沒有順時針排卻用 +1 右轉 邏輯錯誤 表排成上、下、左、右 上、右、下、左;或依題目定義排
4 左轉寫成 d - 1 邏輯錯誤 d = (d - 1) % 4;d = 0 時變 -1 d = (d + 3) % 4;
5 先移動再檢查 邏輯錯誤 r += dr[d]; if (grid[r][c] == '#') ... 先算 nr, nc,檢查通過才 r = nr; c = nc;
6 邊角格的鄰格出界沒擋 UB/RE 四鄰格迴圈裡沒有 inside 每個鄰格都先 if (!inside(nr, nc)) continue;
7 「同時」的更新就地改同一張表 邏輯錯誤 a[r][c] -= q; a[nr][nc] += q; a、寫 next,回合結束 swap
8 旋轉在原地做、忘了長寬對調 邏輯錯誤 轉完仍用舊的 rowscols 輸出 新開 C × R 的表,輸出用新大小
9 總和用 int 溢位 邏輯錯誤 機器人的路徑 10^4 \times 10^6int 累加用 long long
10 只跑範例 1 就交 測試不足 方向表排反在 M = 1 全對 兩個範例都跑,再自造角落/全牆/單列測資