Действия с двумерными массивами - 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);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д