初學者編寫 C 程序打印字母圖案時,第 8 行報錯:expected identifier or '(' before '=' token。本文分析語法錯誤並給出正確代碼。
#include <stdio.h>
int main() {
int i, j;
char ch;
for (i = 1; i < 5; i++) {
char = 'A' + i - 1; // 第 8 行:語法錯誤
for (j = 1; j < 2 * i - 1; j++)
printf("%c\n", ch);
}
return 0;
}
char 是關鍵字(類型聲明),不能作為變量名賦值。此處意圖是給變量 ch 賦值,應寫為 ch = 'A' + i - 1;。
#include <stdio.h>
int main() {
int i, j;
char ch;
for (i = 1; i < 5; i++) {
ch = 'A' + i - 1; // 修正:給 ch 賦值
for (j = 1; j < 2 * i - 1; j++)
printf("%c\n", ch);
}
return 0;
}
B
B
C
C
C
C
D
D
D
D
D
D
邏輯說明:外層循環 i=1..4,對應字母 B、C、D、E(但 i<5 只到 D);內層循環打印 2*i-1 次:i=1 打印 1 次 B,i=2 打印 3 次 C,i=3 打印 5 次 D,i=4 打印 7 次 E(但代碼中 i<5,i=4 時字母為 'A'+3='D',打印 7 次 D)。
char, int, for 等)作為變量名。expected identifier 通常意味著該位置期望一個標識符(變量名、函數名),卻遇到關鍵字或符號。