for(t=1; t<=2i-1; t++)
printf("*");
編譯器報錯:第 9 行、第 15 行語法錯誤。
C 語言中變量與數字相乘必須顯式寫出乘號 `*`。`2i` 會被解析為標識符而非「2 乘以 i」,導致語法分析失敗。
for(t=1; t<=2*i-1; t++)
printf("*");
#include <stdio.h>
int main(void) {
int n, i, j, t;
scanf("%d", &n);
// 上半部
for(i=1; i<=n; i++) {
for(j=1; j<=n-i; j++) printf(" ");
for(t=1; t<=2*i-1; t++) printf("*");
printf("\n");
}
// 下半部
for(i=n-1; i>=1; i--) {
for(j=1; j<=n-i; j++) printf(" ");
for(t=1; t<=2*i-1; t++) printf("*");
printf("\n");
}
return 0;
}
注意:原代碼外層循環條件 `i<=4` 應改為 `i<=n` 以適應輸入行數;下半部起始值應為 `n-1` 避免中間行重複。