本單元常犯錯誤總覽
| # | 錯誤 | 類型 | 錯誤範例 | 正確寫法 |
|---|---|---|---|---|
| 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; |