Требуется:
Найти все диагонали матрицы относительно второстепенной по левую её сторону, включая саму второстепенную диагональ
Надо сделать всё так, чтобы была возможность в любой момент дать условный индекс диагонали относительно второстепенной. Сама второстепенная диагональ - обозначается индексом 0
Если из описания не понятно, то вот что я имею ввиду
Я почти смог это сделать, но будь всё прекрасно - сюда бы не писал.
Алгоритм работает, в общих чертах, как надо, но последний элемент каждой диагонали упускается!
Вот код, который я написал
Код
public class CSharpLearning
{
static void Main()
{
Random rand = new Random();
int diagNum = 0;
int N = 5;
int[,] array = new int[N, N];
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
array[i, j] = rand.Next(10, 99);
Console.Write(array[i, j] + " ");
}
Console.WriteLine();
}
int[] result = new int[N];
int k = 0;
for (int i = 0, j = (diagNum == 0) ? N - 1 : N - diagNum - 1; j > 0; ++i, --j)
{
result[k] = array[i, j];
k++;
}
Console.WriteLine("Выбранная диагональ");
foreach (int i in result)
{
Console.Write(i + " ");
}
}
}
Что я только не пробовал, чтобы исправить эту небольшую проблему - всё бестолку, либо я что-то упустил...