Дан двумерный массив, создать другой массив, строками которого будут диагонали первого массива - C#

Узнай цену своей работы

Формулировка задачи:

Дан двумерный массив, создать другой массив, строками которого будут диагонали первого массива. Задачу решить с помощью классов. Класс будет содержать два метода: один заполнит массив значениями, второй произведет замену значений строк на значения диагоналей.

Решение задачи: «Дан двумерный массив, создать другой массив, строками которого будут диагонали первого массива»

textual
Листинг программы
using System;
static class IntMatrixOps 
{
    public static int[,] SwapLineByDiag(this int[,] matr) 
    {
        if (matr.GetLength(0) != matr.GetLength(1)) throw new Exception
            ("все плохо(метод работает только с квадратными матрицами)");
        int[,] m2 = new int[matr.GetLength(0), matr.GetLength(1)];
        for (int i = 0; i < matr.GetLength(1); i++)
            for (int j = 0; j < matr.GetLength(0); j++)
                  m2[j, i] = matr[i, i];
        return m2;
    }
    public static void FillWithRandoms(this int[,] matr,Random r = null) 
    {
        r = r ?? new Random();
        for (int i = 0; i < matr.GetLength(0); i++)
            for (int j = 0; j < matr.GetLength(1); j++) matr[i, j] = r.Next(0,100);
    }
    public static void Show(this int[,] matr) 
    {
        for (int i = 0; i < matr.GetLength(0); i++)
        {
            for (int j = 0; j < matr.GetLength(1); j++) Console.Write("{0,3}", matr[i, j]);
            Console.WriteLine();
        }
    }
}
class test
{
    static void Main()
    {
        Random r = new Random();
        Console.Write("введите сторону матрицы : ");
        int b = int.Parse(Console.ReadLine());
        int[,] matrix = new int[b,b];
        matrix.FillWithRandoms(r);
        Console.WriteLine();
        matrix.Show();
        Console.WriteLine("\nновая матрица : ");
        int[,] matr2 = matrix.SwapLineByDiag();
        matr2.Show();
        Console.ReadKey(true);
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.143 из 5
Похожие ответы