有一个二维数组
int[,] = {{0,1,2},
{3,4,5},
{6,7,8}};
现在要先显示 2 ,再显示 1,5,接下来显示 0,4,8,就这样子一直按斜对角显示,
请问算法该如何写?
有一个二维数组
int[,] = {{0,1,2},
{3,4,5},
{6,7,8}};
现在要先显示 2 ,再显示 1,5,接下来显示 0,4,8,就这样子一直按斜对角显示,
请问算法该如何写?
该回复引自免费微信小程序-皆我百晓生:
可以使用两个变量来控制行和列的索引,然后按照斜对角线的顺序遍历二维数组。具体的算法如下:
初始化两个变量row和col,分别表示当前要显示的元素的行和列的索引,初始值为0。
使用一个循环,循环次数为二维数组的总元素个数。
在循环中,先判断当前的row和col是否越界,如果越界,则将row和col分别设置为0和col+1。
输出二维数组中索引为row和col的元素。
将row和col分别加1,用于下一次循环。
重复步骤3到步骤5,直到循环结束。
下面是具体的C#代码实现:
int[,] array = new int[,] { { 0, 1, 2 }, { 3, 4, 5 }, { 6, 7, 8 } };
int row = 0;
int col = 0;
for (int i = 0; i < array.Length; i++)
{
if (row >= array.GetLength(0) || col >= array.GetLength(1))
{
row = 0;
col++;
}
Console.WriteLine(array[row, col]);
row++;
col++;
}