Преобразовать массив: разделить элементы каждой строки матрицы на среднее арифметическое элементов этой строки

AzazaMen AzazaMen    1   09.12.2019 21:49    0

Ответы
kristok2012 kristok2012  10.10.2020 19:39

static void Main(string[] args)

       {

           int N = 0, M = 0, srednArifm = 0, sum = 0; ;

           Console.Write("Введите размерность массива M: ");

           M = Convert.ToInt32(Console.ReadLine());

           Console.Write("Введите размерность массива N: ");

           N = Convert.ToInt32(Console.ReadLine());

           int[,] mas = new int[M, N];

           Random rnd = new Random();

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

           {

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

               {

                   mas[i, j] = rnd.Next(0, 10);

               }

           }

           Console.WriteLine();

           Console.Write("Массив: ");

           Console.WriteLine();

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

           {

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

               {

                   Console.Write(String.Format("{0,3}", mas[i, j]));

               }

               Console.WriteLine();

           }

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

           {

               sum = 0;

               srednArifm = 0;

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

               {

                   sum += mas[i, j];

               }

               srednArifm = sum / N;

               for (int g = 0; g < N; g++)

               {

                   mas[i, g] = mas[i, g] / srednArifm;

               }

           }

           Console.WriteLine();

           Console.Write("Массив после преобразования: ");

           Console.WriteLine();

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

           {

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

               {

                   Console.Write(String.Format("{0,3}", mas[i, j]));

               }

               Console.WriteLine();

           }

           Console.ReadKey();

       }

Объяснение:

Код на C#. Округляет числа до целых значений в меньшую сторону, т.к. тип данных int. Если нужны дробные значения - то смените тип массива на double.

ПОКАЗАТЬ ОТВЕТЫ
shtylev2018 shtylev2018  10.10.2020 19:39

===== PascalABC.NET =====

begin

 var (m, n) := ReadInteger2('Укажите m и n:');

 var a := MatrRandomReal(m, n, -99, 99);

 a.Transform(p -> p.Round(2));

 a.Println(8, 2);

 Writeln;

 var v := a.Rows.Select(row -> row.Average).ToArray;

 for var i := 0 to a.RowCount - 1 do

   for var j := 0 to a.ColCount - 1 do

     a[i, j] /= v[i];

 a.Println(8, 3)

end.


Преобразовать массив: разделить элементы каждой строки матрицы на среднее арифметическое элементов э
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика