Действия с двумерными массивами - C#

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

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

Даны два двумерных квадратных массива (размера nxn), заполненных рандомными числами (разными, соответственно). Надо получить новый массив "путём прибавления к элементам каждого столбца первого массива произведение элементов соответствующих строк второго массива". Допустим, я объявил два таких массива, а дальше как это собрать? (Если не сложно, подскажите ещё как сократить объявление массивов)
 static void Main(string[] args)
        {
            Console.WriteLine("Введите размер массива размера n1xn1");
            int n1 = int.Parse(Console.ReadLine());
            int m1 = n1;
            int[,] A = new int[n1, m1];
            Console.WriteLine("Введите начало отрезка с которого будет начинаться случайное заполнение массива");
            int c1 = int.Parse(Console.ReadLine());
            Console.WriteLine("Введите конец отрезка где будет заканчиваться случайное заполнение массива");
            int d1 = int.Parse(Console.ReadLine());
            Random r1 = new Random();
            for (int i = 0; i < n1; i++)
            {
                for (int j = 0; j < m1; j++)
 
                    A[n1, m1] = r.Next(c, d);
            }
            Console.WriteLine("Введите размер массива размера n2xn2");
            int n2 = int.Parse(Console.ReadLine());
            int m2 = n1;
            int[,] B = new int[n1, m1];
            Console.WriteLine("Введите начало отрезка с которого будет начинаться случайное заполнение массива");
            int c2 = int.Parse(Console.ReadLine());
            Console.WriteLine("Введите конец отрезка где будет заканчиваться случайное заполнение массива");
            int d2 = int.Parse(Console.ReadLine());
            Random r2 = new Random();
            for (int i = 0; i < n2; i++)
            {
                for (int j = 0; j < m2; j++)
 
                    A[n1, m1] = r2.Next(c2, d2);
            }
        }

Решение задачи: «Действия с двумерными массивами»

textual
Листинг программы
static Random R = new Random();
 
static int[,] InputMatrix(int N)
{
    int[,] A = new int[N, N];
    Console.WriteLine("Введите начало отрезка с которого будет начинаться случайное заполнение массива");
    int c = int.Parse(Console.ReadLine());
    Console.WriteLine("Введите конец отрезка где будет заканчиваться случайное заполнение массива");
    int d = int.Parse(Console.ReadLine());
    for (int i = 0; i < N; i++)
        for (int j = 0; j < N; j++)
            A[i, j] = R.Next(c, d+1);
    return A;
}
 
static void Modify(int[,] A, int[,] B)
{
    int N = A.GetLength(0);
    for (int j = 0; j < N; j++)
    {
        int P = 1;
        for (int x = 0; x < N; x++)
            P *= B[j, x];
        for (int i = 0; i < N; i++)
            A[i, j] += P;
    }
}
 
static void OutputMatrix(int[,] A)
{
    int N = A.GetLength(0);
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
            Console.Write("{0,4}", A[i, j]);
        Console.WriteLine();
    }
}
 
static void Main(string[] args)
{
    Console.WriteLine("Введите размер квадратных матриц: ");
    int N = int.Parse(Console.ReadLine());
    
    Console.WriteLine("Инициализация первой матрицы");
    int[,] A = InputMatrix(N);
    OutputMatrix(A);
    Console.WriteLine();
    
    Console.WriteLine("Инициализация второй матрицы");
    int[,] B = InputMatrix(N);
    OutputMatrix(B);
    Console.WriteLine();
    
    Modify(A, B);
    OutputMatrix(A);
}

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


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

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

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