題目:列印下列圖示
*        *****
**        ****
***         **
****         *
*****
目前我只能做到兩邊都是對等的 請問我該怎麼解這題?
            for (int num1 = 1; num1 <= 5; num1++) {
                for (int num2 = 1; num2 <= num1; num2++) {
                    textBox2.AppendText("*");
                }
                textBox2.AppendText("\r");
                for (int num3 = 5; num3 >= num1; num3--) {
                    textBox2.AppendText("*");
                }
                textBox2.AppendText("\r\n");
            }
這樣可以成功 可是覺得寫得很不好...
            for (int num1 = 1,row = 1; num1 <= 5; num1++, row++) {
                for (int num2 = 1; num2 <= num1; num2++) {
                    textBox2.AppendText("*");
                }
                textBox2.AppendText("\r");
                if (row >= 3) {
                    textBox2.AppendText("  ");
                    num1++;
                }
                for (int num3 = 5; num3 >= num1; num3--) {
                    textBox2.AppendText("*");
                }
                if (row >= 3)
                {
                    num1--;
                }
                textBox2.AppendText("\r\n");
            }
這是chatGPT回答的
using System;
namespace TriangleExample
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Forward Triangle:");
            for (int i = 1; i <= 5; i++)
            {
                for (int j = 1; j <= i; j++)
                {
                    Console.Write("*");
                }
                Console.WriteLine();
            }
            Console.WriteLine("\nReverse Triangle:");
            for (int i = 5; i >= 1; i--)
            {
                for (int j = 1; j <= i; j++)
                {
                    Console.Write("*");
                }
                Console.WriteLine();
            }
        }
    }
}

有個東西叫"定位",C#裡叫 Console.SetCursorPosition
static void Main(string[] args)
        {
            for (int y = 0; y < 5; y++)
            {
                for (int c = 0; c <= y; c++)
                {
                    Console.SetCursorPosition(c+1, y+1);
                    Console.Write("*");
                }
                for (int c = 5-y; c >= 1; c--)
                {
                    Console.SetCursorPosition(15-c, y+1);
                    Console.Write("*");
                }
            }
            Console.ReadKey();
        }
輸出結果
 *        *****
 **        ****
 ***        ***
 ****        **
 *****        *
你要會變通啊,不然以後出社會走這行路會卡住
其實我主要的疑惑點是 右邊的圖形 我看不出來他的規律是什麼
可是也是謝謝你 "定位"這塊 我之前倒是沒碰過 我的方式是我的PO的第一段code 我是把它當列印一樣 一行一行去做處理
*****
****
**
*
javascript的寫法給你參考~
let str = "*";
let lat = "";
for(let i = 0; i < 5; i++){
    lat = "        "
    for(let j = 5-i; j > 0; j--){
        lat += "*"
    }
    console.log(str+lat)
    str += "*";
}
感謝你的回應 可是我要的不是完全對稱的是像這樣的
*        *****
**        ****
***         **
****         *
*****
比起不完全對稱更像是對稱後替換字,右側在第三行之後都會將第一個字換成空白,可以試試加上布林作替換依據
寫法同上,加一個確認i是不是到第三行的布林&替換文字用的布林即可
let str = "*";
let lat = "";
let firstCheck = false;
let changeCheck = false;
for(let i = 0; i < 5; i++){
    lat = "        "
    for(let j = 5-i; j > 0; j--){
        if(i >= 2) firstCheck = true;
        if(firstCheck && !changeCheck) {
            lat += " ";
            changeCheck = true;
        }else lat += "*"
    }
    firstCheck = false;
    changeCheck = false;
    console.log(str+lat)
    str += "*";
}
純粹使用FOR迴圈
for (int y = 0; y < 5; y++)
{
    //正三角形*
    for (int c = 0; c <= y; c++)
    {
        Console.Write("*");
    }
    //隱藏反三角形
    for (int c = 5 - y; c > 1; c--)
    {
        Console.Write(" ");
    }
    //隱藏正三角形
    for (int c = 0; c <= y; c++)
    {
        Console.Write(" ");
    }
    //反三角形*
    for (int c = 5 - y; c > 0; c--)
    {
        Console.Write("*");
    }
    Console.WriteLine();
}
Console.ReadKey();
輸出結果:
隱藏三角形說的是這個...請參考我小畫家畫的圖