Дополнить двумерный массив строкой и столбцом, в которые записать суммы элементов - C#
Формулировка задачи:
Задан двумерный массив размерности m n. Дополнить его строкой и столбцом, в которых записать суммы элементов соответствующих строк и столбцов исходного массива. В элементе (m+1,n+1) должна храниться сумма всех элементов первоначального массива.
Решение задачи: «Дополнить двумерный массив строкой и столбцом, в которые записать суммы элементов»
textual
Листинг программы
- using System;
- namespace ConsoleApp1
- {
- class Program
- {
- static void Main()
- {
- Random r = new Random();
- Console.Write("M = "); int m = int.Parse(Console.ReadLine());
- Console.Write("N = "); int n = int.Parse(Console.ReadLine());
- int[,] mas = new int[m, n];
- for (int i = 0; i < m; i++)
- for (int j = 0; j < n; j++)
- mas[i, j] = r.Next(0, 100);
- Console.WriteLine("Исходная матрица:");
- Output(mas);
- mas = NewMas(mas);
- Console.WriteLine("Новая матрица");
- Output(mas);
- Console.ReadKey();
- }
- static int[,] NewMas(int[,] mas)
- {
- int[,] mas1 = new int[mas.GetLength(0) + 1, mas.GetLength(1) + 1];
- int global = 0;
- for (int i = 0; i < mas1.GetLength(0) - 1; i++)
- {
- int sum = 0;
- for (int j = 0; j < mas1.GetLength(1); j++)
- if (j < mas.GetLength(1))
- {
- mas1[i, j] = mas[i, j];
- sum += mas[i, j];
- global += mas[i, j];
- }
- else
- mas1[i, j] = sum;
- }
- for (int j = 0; j < mas1.GetLength(1) - 1; j++)
- {
- int sum = 0;
- for (int i = 0; i < mas1.GetLength(0); i++)
- if (i < mas.GetLength(0))
- sum += mas[i, j];
- else mas1[i, j] = sum;
- }
- mas1[mas.GetLength(0), mas.GetLength(1)] = global;
- return mas1;
- }
- static void Output(int[,] mas)
- {
- for (int i = 0; i < mas.GetLength(0); i++)
- {
- for (int j = 0; j < mas.GetLength(1); j++)
- Console.Write(mas[i, j] + "\t");
- Console.WriteLine();
- }
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д