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