В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
Тембулат14
Тембулат14
12.11.2020 02:31 •  Информатика

C# назовем максимальный элемент двумерного массива S[n,n]- главным. Написать программу которая находит произведение чисел той строки двумерного массива, в которой расположен главный элемент

Показать ответ
Ответ:
Rhhufyko
Rhhufyko
15.10.2020 14:58

--- C# 7.3 ---

using System;

using System.Collections;

using System.Collections.Generic;

using System.Linq;

namespace CSLear

{

   partial class Program

   {

       static void Main(string[] args)

       {

           int n = int.Parse(Console.ReadLine());

           int[,] Matr = MatrixRandomize(n, n, -99, 99);

           MatrixPrint(Matr);

           Console.WriteLine(Matr.GetMatrRow(IntMatrRowOfMaxIndex(Matr)).Aggregate(1f, (x, y) => x * y));

           Console.ReadKey();

       }

       private static int IntMatrRowOfMaxIndex(in int[,] Matr)

       {

           int max = int.MinValue;

           int RowOfMax = 0;

           for (int i = 0; i < Matr.GetLength(0); i++)

           {

               for (int j = 0; j < Matr.GetLength(1); j++)

               {

                   if (Matr[i, j] > max)

                   {

                       max = Matr[i, j];

                       RowOfMax = i;

                   }

               }

           }

           return RowOfMax;

       }

       public static int[,] MatrixRandomize(int ArrRows, int ArrCols, int minValue, int maxValue)

       {

           Random r = new Random();

           int[,] Arr = new int[ArrRows, ArrCols];

           for (int i = 0; i < ArrRows; i++)

           {

               for (int j = 0; j < ArrCols; j++)

               {

                   Arr[i, j] = r.Next(minValue, maxValue);

               }

           }

           return Arr;

       }

       public static void MatrixPrint<T>(T[,] Matr)

       {

           StringBuilder sb = new StringBuilder();

           for (int i = 0; i < Matr.GetLength(0); i++)

           {

               for (int j = 0; j < Matr.GetLength(1); j++)

               {

                   sb.Append($"{Matr[i, j]} ");

               }

               sb.Append("\n");

           }

           Console.WriteLine(sb.ToString());

       }

   }

   public static class Extensions

   {

       public static T[] GetMatrRow<T>(this T[,] Matr, int Row)

       {

           if (!typeof(T).IsPrimitive)

               throw new ("Supports only primitive types");

           if (Matr == null)

               throw new NullReferenceException("Null Matrix");

           T[] Res = new T[Matr.GetLength(1)];

           int RowLength = Matr.GetLength(0);

           for (int i = 0; i < RowLength; i++)

           {

               Res[i] = Matr[Row, i];

           }

           return Res;

       }

   }

}

Программа выдаёт ответ в виде числа типа Single, т.к результат перемножения строки матрицы может сильно выходить даже за предел Int64

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота