在C#中打印图案

时间:2018-11-26 14:55:37

标签: c#

我试图在C#中生成此输出:

5 4 3 2 1

4 3 2 1

3 2 1

2 1

1

这是我的代码,但是不起作用:

int y, z;
for (z = 1; z <= 5; z++)
{
    for ( y = 5 ; y >= z; y--)
    {
        Console.Write(y);
    }
    Console.WriteLine( );
}
Console.ReadLine();

3 个答案:

答案 0 :(得分:0)

您快到了。问题是您的第二个循环:您正在从5z进行计数,并且应该从5 - z + 11进行计数,并在y为{{ 1}}:

0

当然,更干净的方法是反转第一个循环并利用可用的框架工具:

for (z = 1; z <= 5; z++)
{
    for ( y = 5 - z + 1; y > 0; y--)
    {
        Console.Write(y);
    }

    Console.WriteLine( );
}

答案 1 :(得分:0)

我认为这段代码可以为您提供帮助。

for (int i = 5 ; i >= 1 ; i-- )
{
    for (int j = i; j >= 1; j--)
    {
        Console.Write(j);
    }
    Console.WriteLine("\n");
}
onsole.ReadLine();

答案 2 :(得分:0)

以防万一您想使用一个循环(在本例中为while循环)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace PrintOutput
{
    class Program
    {
        static void Main(string[] args)
        {
            List<int> nums = new List<int>(new int[] { 1, 2, 3, 4, 5 });
            while(nums.Count()>0)
            {
                Console.WriteLine(string.Join(" ", nums));
                nums.Remove(nums.Max());
            }
            Console.ReadLine();
        }
    }
}