Задать вопрос
@michadimin

Как найти диагонали матрицы относительно второстепенной с левой стороны?

Требуется:
Найти все диагонали матрицы относительно второстепенной по левую её сторону, включая саму второстепенную диагональ
Надо сделать всё так, чтобы была возможность в любой момент дать условный индекс диагонали относительно второстепенной. Сама второстепенная диагональ - обозначается индексом 0

Если из описания не понятно, то вот что я имею ввиду
637a3b7cda9c7588851114.png

Я почти смог это сделать, но будь всё прекрасно - сюда бы не писал.
Алгоритм работает, в общих чертах, как надо, но последний элемент каждой диагонали упускается!

Вот код, который я написал
Код

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 + " ");
        }
    }

}



Что я только не пробовал, чтобы исправить эту небольшую проблему - всё бестолку, либо я что-то упустил...
  • Вопрос задан
  • 210 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Software-testing.ru
    Программирование на C# для тестировщиков
    10 недель
    Далее
Пригласить эксперта
Ответы на вопрос 1
Alexeytur
@Alexeytur
j >= 0
for (int i = 0, j = (diagNum == 0) ? N - 1 : N - diagNum - 1; j >= 0; ++i, --j)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы