空心等腰三角形#Console

时间:2015-11-13 09:58:38

标签: c#

在C#中创建三角形有很多例子 但是现在我需要一个空心的,所以在C或C ++中有很多例子,但我需要一个在C#控制台,有些机构可以给我一些例子

     *
   * * *
  * * * *
 * * * * *
* * * * * *
int i, j;

for (i = 0; i < 5; i++)
{

    for (j = 5 - i; j > 0; j--)
        Console.Write(" ");

    for (j = 0; j <= 2 * i; j++)
        Console.Write("*");

    Console.WriteLine();

}
     *
   *   *
  *     *
 *       *
* * * * * *

2 个答案:

答案 0 :(得分:0)

这可以......但如果该值大于单行上的可打印值,则会进入下一行。没有换行的最大可能值是40.直到40它在我的系统中运行良好且良好。对于较大的值,您必须增加命令提示符的宽度。可以使用命令或通过更改命令提示符属性中的宽度来完成。

        int i, j,n=5;
        for (i = 0; i < n; i++)
        {

            for (j = n - i; j > 0; j--)
                Console.Write(" ");

            for (j = 0; j <= 2 * i; j++)
            {
                if (j < 2 * i && j > 0&&i!=(n-1))
                    Console.Write(" ");
                else
                    Console.Write("*");
            }
            Console.WriteLine();
        }

答案 1 :(得分:0)

试试这个:

void Main()
{
    Int32 totalLines = 9;
    for (Int32 i = 0; i <= totalLines; ++i)
        Console.WriteLine(Line(i, totalLines));
}

String Line(Int32 i, Int32 totalLines)
{
    Int32 charCount = 2 * totalLines + 1;
    Int32 center = charCount / 2;

    // Last line is filled completely
    if (i == totalLines) return new String(Enumerable.Repeat('*', charCount).ToArray());

    Char[] chars = Enumerable.Repeat(' ', charCount).ToArray();
    chars[center-i] = '*';
    chars[center+i] = '*';
    return new String(chars);
}

这只适用于等宽字体。