我的矩阵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);
}
}
}
}
我不知道如何将我的输出反转为预期的输出
只需稍作修改即可完成:
array[i, j] = (i == 4 - j) ? 1 : 0;
您可以像这样打印数组:
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
for循环中的一个小错误。附上正确的行:
for (int j = 4; j >= 0; j--)
{
array[i, j] = (i == j) ? 1 : 0;
Console.Write($"{array[i, j]} ");
}