使用C#控制台应用程序中的嵌套for循环从右上角到左下角绘制对角线

问题描述 投票:0回答:3

我的矩阵5x5充满了零。

我将使用嵌套的for循环从右上角到左下角绘制对角线。

预期输出

0 0 0 0 1
0 0 0 1 0
0 0 1 0 0
0 1 0 0 0
1 0 0 0 0

我的输出

1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1

到目前为止我的代码:

using System;

namespace practice_04
{
class Program
{
    static void Main(string[] args)
    {
        int[,] array = new int[5, 5];
        for (int i = 0; i < 5; i++)
        {
            for (int j = 0; j < 5; j++)
            {
                array[i, j] = (i == j) ? 1 : 0;

                Console.Write($"{array[i, j]} ");
            }
            Console.WriteLine(Environment.NewLine);
        }
    }
}
}

我不知道如何将我的输出反转为预期的输出

c# arrays .net for-loop
3个回答
1
投票

只需稍作修改即可完成:

array[i, j] = (i == 4 - j) ? 1 : 0;

1
投票

您可以像这样打印数组:

i\j 0 1 2 3 4
 0  0 0 0 0 1
 1  0 0 0 1 0
 2  0 0 1 0 0
 3  0 1 0 0 0
 4  1 0 0 0 0

因此您想要i + j == 4而不是i == j

如果您还不确定,这就是i+j的样子:

i\j 0 1 2 3 4
 0  0 1 2 3 4
 1  1 2 3 4 5
 2  2 3 4 5 6
 3  3 4 5 6 7
 4  4 5 6 7 8

0
投票

for循环中的一个小错误。附上正确的行:

for (int j = 4; j >= 0; j--)
        {
            array[i, j] = (i == j) ? 1 : 0;

            Console.Write($"{array[i, j]} ");
        }
© www.soinside.com 2019 - 2024. All rights reserved.