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

C語言 for 迴圈經典實戰:三角形打印與九九乘法表

     編輯:關於C

for 迴圈三要素回顧

for (初始化; 條件判斷; 迭代增量) {
    循環體;
}

巢狀迴圈中,外層控制「行」,內層控制「列/字符」,是圖形打印的通用模式。

案例一:等腰三角形

#include <stdio.h>

int main(void) {
    int n, i, j;
    printf("輸入行數: ");
    scanf("%d", &n);

    for (i = 0; i < n; i++) {
        // 1. 打印前導空格:n - 1 - i 個
        for (j = 0; j < n - 1 - i; j++) putchar(' ');

        // 2. 打印星號:2*i + 1 個
        for (j = 0; j < 2 * i + 1; j++) putchar('*');

        putchar('\n');
    }
    return 0;
}

輸入 5 輸出:

    *
   ***
  *****
 *******
*********

關鍵規律:第 i 行(0-index)空格 n-1-i,星號 2*i+1。

案例二:九九乘法表(上三角)

#include <stdio.h>

int main(void) {
    int i, j;
    for (i = 1; i <= 9; i++) {
        for (j = i; j <= 9; j++) {      // j 從 i 開始 → 上三角
            printf("%d*%d=%-3d ", i, j, i*j);
        }
        putchar('\n');
    }
    return 0;
}

輸出:

1*1=1  1*2=2  1*3=3  ... 1*9=9
2*2=4  2*3=6  ...       2*9=18
...
9*9=81

案例三:九九乘法表(下三角)

for (i = 1; i <= 9; i++) {
    for (j = 1; j <= i; j++) {      // j 到 i 結束 → 下三角
        printf("%d*%d=%-3d ", i, j, i*j);
    }
    putchar('\n');
}

輸出:

1*1=1
2*1=2  2*2=4
3*1=3  3*2=6  3*3=9
...
9*1=9  ... 9*9=81

格式化輸出技巧

  • %-3d:左對齊佔 3 寬,保證列對齊。
  • putchar 比 printf("%c") 輕量,適合單字符輸出。

避坑指南

  1. 邊界條件:<= vs <,手寫推演前 2 行驗證。
  2. 變量初始化:int i, j; 未初始化用於迴圈變量無妨,但良習建議 int i=0, j=0;。
  3. scanf 格式串:\"%d\" 而非 \"%d\n\",避免輸入阻塞。

總結

三角形與乘法表是 for 迴圈邏輯思維的「最小驗證集」。掌握「行號 → 空格/起始列數 → 打印數量」的映射關係,複雜圖形亦可拆解為多個簡單迴圈組合。

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