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

C# 印出星號三角形:雙重迴圈邏輯與完整代碼

     編輯:程式設計綜合問答

規律分析

假設總行數 row,第 n 行(1-based):

  • 前導空格數:row - n
  • 星號數:2*n - 1(等差數列 1, 3, 5...)

完整代碼

using System;

class Program {
    static void Main() {
        int row = 5;  // 可改為 Console.ReadLine() 讀取
        for (int n = 1; n <= row; n++) {
            // 印空格
            for (int s = 0; s < row - n; s++)
                Console.Write(" ");
            // 印星號
            for (int k = 0; k < 2 * n - 1; k++)
                Console.Write("*");
            Console.WriteLine();
        }
    }
}

輸出結果 (row=5)

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

常見錯誤修正

  • 原回答中 for(int j = 0; j < row-1-i; i++) 條件變數寫錯(應 j++),星號迴圈同理。
  • C# 用 Console.Write/WriteLine,非 printf。

進階:倒三角、空心三角

// 倒三角
for (int n = row; n >= 1; n--) { /* 同邏輯 */ }

// 空心三角
for (int n = 1; n <= row; n++) {
    // 空格
    for (int s = 0; s < row - n; s++) Console.Write(" ");
    // 星號:首尾行全印,中間只印首尾
    for (int k = 0; k < 2*n-1; k++) {
        if (n == row || k == 0 || k == 2*n-2) Console.Write("*");
        else Console.Write(" ");
    }
    Console.WriteLine();
}

掌握行號與字符數的數學關係,圖形輸出題迎刃而解。

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