Дополнить двумерный массив строкой и столбцом, в которые записать суммы элементов - 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();
            }
        }
    }
}

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


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

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

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