将一对chars(*)放置在中心而不是左边

时间:2019-01-29 17:05:37

标签: c# for-loop char

所以我正在努力使用控制台应用程序。要求字符线形成树状图案而不是右翼三角形。像这样(3):

  *
 ***
*****

到目前为止,我有这个:

int rows = int.Parse(Console.ReadLine());

for(int i = 1; i <= rows; i++)
 {
            for(int x = 1; x <= i; x++)
            {
                Console.Write("*");
            }
            Console.WriteLine("\n");
 }

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找PadLeft函数。它在字符串的左侧添加了空格,因此您可以正确放置它。另外,您需要将行数乘以2并将步长增加1。您将获得以下代码:

int rows = int.Parse(Console.ReadLine()) * 2;

for (int i = 1; i <= rows; i += 2) {
  Console.Write( "".PadLeft( (rows - i) / 2) );
  for(int x = 1; x <= i; x++) {
    Console.Write("*");
  }
  Console.WriteLine();
}

此外,如果您真的想使三角形看起来像这样,则可能需要删除此行:

Console.WriteLine("\n");

...并将其更改为此:

Console.WriteLine();

(这将删除不必要的换行符,WriteLine已在打印换行符。)