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

C語言初學者必看:空心倒三角打印與調試技巧

     編輯:C 語言問答

常見錯誤代碼分析

for (k=1; k<=2*h-1; k++)
    if (k<2*h-1) printf("*");
if (k=2*h-1) printf("*\n");   // 錯誤1:= 應為 ==
for (i=2; i<=h; i++)
    if (j<=i-1 || ...)       // 錯誤2:j 未初始化、未循環

修正版核心邏輯

#include 
int main() {
    int h, i, j;
    scanf("%d", &h);
    // 第一行:2*h-1 個 *
    for (j = 1; j <= 2*h-1; j++) putchar('*');
    putchar('\n');
    // 中間行:兩側 *,中間空格
    for (i = 2; i < h; i++) {
        for (j = 1; j <= 2*h-1; j++) {
            if (j == h-i+1 || j == h+i-1) putchar('*');
            else putchar(' ');
        }
        putchar('\n');
    }
    // 最後一行:中間一個 *
    if (h > 1) {
        for (j = 1; j < h; j++) putchar(' ');
        putchar('*');
        putchar('\n');
    }
    return 0;
}

調試三板斧

  1. 開啟警告:gcc -Wall -Wextra -pedantic,編譯器會提示 if (k=...) 等隱患。
  2. 單步調試:IDE 設置斷點,觀察循環變量 i, j, k 變化。
  3. 輸出中間值:在關鍵位置 printf("i=%d j=%d\n", i, j);,對比預期與實際。

心法: 先在紙上畫幾行找規律,再寫循環;調試是常態,不怕錯,怕不找錯。

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