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

C 語言練習:列印直角三角形星號圖案(兩種迴圈寫法)

     編輯:程式設計綜合問答

題目需求

輸入整數 n,列印 n 行星號,第 i 行有 i 顆星號,形成左對齊直角三角形。

範例輸出 (n=5)


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

解法一:雙層 for 迴圈

#include <stdio.h>

int main() {
    int n;
    printf("請輸入行數: ");
    if (scanf("%d", &n) != 1 || n <= 0) return 1;

    for (int i = 1; i <= n; i++) {       // 控制行數
        for (int j = 0; j < i; j++) {    // 控制每行星號數
            putchar('*');
        }
        putchar('\n');
    }
    return 0;
}

解法二:單迴圈 + 字串操作 (較進階)

#include <stdio.h>
#include <string.h>

int main() {
    int n;
    printf("請輸入行數: ");
    if (scanf("%d", &n) != 1 || n <= 0) return 1;

    char line[100] = {0};
    for (int i = 1; i <= n; i++) {
        line[i-1] = '*';        // 在字串尾端新增一顆星
        printf("%s\n", line);   // 直接列印累積字串
    }
    return 0;
}

關鍵點總結

  • 外層迴圈 `i` 代表行號 (1~n)。
  • 內層迴圈 `j` 從 0 到 `i-1`,共執行 `i` 次。
  • 使用 `putchar` 或 `printf("%c")` 輸出單一字元效率最高。
  • 注意 `scanf` 回傳值檢查,避免非數字輸入導致無限迴圈。

延伸練習

  1. 列印等腰三角形(需前置空格)。
  2. 列印倒三角形(外層 `i` 從 n 遞減至 1)。
  3. 列印菱形(上半等腰 + 下半倒等腰)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved