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

C++ 迴圈列印 STS 三角形圖案教學

     編輯:關於C++

題目需求

使用 C++ 迴圈語句列印出如下圖案:每行由空格縮排與交替的 'S'、'T' 字元組成,形成一個倒立的等腰三角形,頂部最寬,底部最窄。

S T S T S T S T S T S T S T S T S T S
S T S T S T S T S T S T S T S T S
S T S T S T S T S T S T S T S
S T S T S T S T S T S T S
S T S T S T S T S T S
S T S T S T S T S
S T S T S T S
S T S T S
S T S

程式碼解析

#include <iostream>
using namespace std;

int main() {
    int n = 10; // 控制三角形高度(行數)
    for (int i = 1; i < n; ++i) {        // 外層迴圈控制行數,共 n-1 行
        // 1. 列印前導空格:第 i 行印 i-1 個空格,產生左側縮排
        for (int m = 1; m < i; ++m)
            cout << " ";

        // 2. 列印 STS 交替字元:每行字元數為 2*(n-i)-1
        for (int k = 0; k < 2 * (n - i) - 1; ++k) {
            if (k % 2 == 0) cout << "S"; // 偶數索引印 S
            else cout << "T";            // 奇數索引印 T
        }
        cout << endl; // 換行
    }
    system("pause");
    return 0;
}

關鍵邏輯說明

  1. 行數控制:外層迴圈 i = 1 ~ n-1,共 9 行。
  2. 左側縮排:第 i 行印 i-1 個空格,使圖形向右逐行遞移。
  3. 字元數量公式:2*(n-i)-1 確保首行最多(17 個字元),每行遞減 2 個,保持三角形對稱。
  4. 字元交替:利用 k % 2 判斷奇偶,交替輸出 'S' 與 'T'。

擴展練習

  • 修改 n 值觀察不同高度的三角形。
  • 嘗試將 'S'、'T' 改為其他字元或字串(如 "*", "#")。
  • 改寫為遞迴版本或使用 while 迴圈實現相同效果。

完整可執行程式碼

#include <iostream>
#include <cstdlib> // system()
using namespace std;

int main() {
    int n = 10;
    for (int i = 1; i < n; ++i) {
        for (int m = 1; m < i; ++m)
            cout << " ";
        for (int k = 0; k < 2 * (n - i) - 1; ++k) {
            cout << (k % 2 == 0 ? 'S' : 'T');
        }
        cout << '\n';
    }
    system("pause");
    return 0;
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved