原始錯誤程式碼
printf("圓柱側面積為:%f\n",area1); // 全形右括號 )
printf("圓柱體積為:%f\n,volume); // 缺少左雙引號、格式字串未閉合
編譯器報錯典型訊息
error: expected ')' before ';' token
error: missing terminating " character
error: expected ';' before 'volume'
修正後完整程式碼
#include <stdio.h>
int main() {
int h = 3;
float r = 1.5, pi = 3.14;
float perimeter, area1, area2, volume;
perimeter = 2 * pi * r;
area1 = 2 * pi * r * h;
area2 = 2 * pi * r * r + 4 * pi * r * h;
volume = pi * r * r * h;
printf("底面圓周長為:%f\n", perimeter);
printf("圓柱側面積為:%f\n", area1); // 半形括號、雙引號配對
printf("圓柱面積為:%f\n", area2);
printf("圓柱體積為:%f\n", volume); // 修正格式字串與引號
return 0;
}
全形/半形字元對照速查
| 字元 | 全形 (錯誤) | 半形 (正確) | 碼位 |
| 左括號 | ( | ( | U+FF08 / U+0028 |
| 右括號 | ) | ) | U+FF09 / U+0029 |
| 分號 | ; | ; | U+FF1B / U+003B |
| 逗號 | , | , | U+FF0C / U+002C |
| 雙引號 | “ ” | " | U+201C/201D / U+0022 |
防禦性編輯器設定
- VS Code / Visual Studio:
Editor: Render Whitespace = "all"、安裝 Full-width Character Highlighter 擴充套件。
- 輸入法:程式設計時強制切換至英文 (半形) 模式,或使用 Shift+Space 快速切換。
- 編譯前跑靜態檢查:
cppcheck --enable=style . 可偵測全形標點。
常見新手錯誤清單
- 中文輸入法下打出全形括號、分號、引號。
- 字串字面值缺少左/右雙引號,或混用中文引號 “ ”。
#include 後漏寫頭檔名或標點。
main() 缺少回傳型別 int (C99 起強制)。
將編輯器設為「可視化空白字元與全形字元」,養成「代碼區純英文輸入」習慣,即可從源頭杜絕此類語法錯誤。
- 上一篇文章: C 語言未包含頭檔仍能呼叫 islower/isupper:編譯器內建函式與隱式宣告機制解析
- 下一篇文章: SQL 累計求和查詢:依 OrderIndex 排序計算每行及之前所有 Num 總和
Copyright ©
程式碼之家 All Rights Reserved