首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C 語言打印金字塔圖形:修復「2i-1」語法錯誤

     編輯:程式設計綜合問答

錯誤代碼片段

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` 避免中間行重複。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved