.NET 4.x Матрица и её среднее арифметическое - C#
Формулировка задачи:
Прошу о помощи. Надо задать матрицу M x N (вводит пользователь), вывести её, определить максимальный элемент, определить среднее арифметическое и вывести результирующую матрицу, в которой все элементы большие среднего арифметического будут заменены на ноль.
Решение задачи: «.NET 4.x Матрица и её среднее арифметическое»
textual
Листинг программы
using System; namespace ConsoleApplication7 { class Program { static void Main(string[] args) { Random rnd = new Random(1); int i = 0, j = 0, x, y, max, avr = 0; Console.Write("i="); x = Convert.ToInt32(Console.ReadLine()); Console.Write("j="); y = Convert.ToInt32(Console.ReadLine()); // лучше выделить память под матрицу после того как будет известна ее размерность (введены x и y) int[,] matr = new int[x, y]; for (i = 0; i < x; i++) { for (j = 0; j < y; j++) { matr[i, j] = rnd.Next(1, 10); Console.Write(matr[i, j] + " "); } Console.WriteLine(); } Console.WriteLine("\n"); // эквивалентно 2-м переносам строки max = matr[0, 0]; for (i = 0; i < x; i++) // вместо x и y было число 5, неверно, т.к. размерность массива может быть и меньше (в таком случае индекс выйдет за пределы матрицы). Думаю, это опечатка была :) { for (j = 0; j < y; j++) { if (max < matr[i, j]) max = matr[i, j]; } } Console.WriteLine("максимальный элемент:" + max); // Вычисление среднего арифметического for (i = 0; i < x; i++) for (j = 0; j < y; j++) avr += matr[i, j]; avr = avr / (x * y); // можно записать avr /= x * y; Console.WriteLine("среднее арифметическое:" + avr); Console.WriteLine("\n\n"); // эквивалентно 3-м переносам строки for (i = 0; i < x; i++) { for (j = 0; j < y; j++) { if (matr[i, j] > avr) matr[i, j] = 0; Console.Write(matr[i, j] + " "); } Console.WriteLine(); } Console.ReadKey(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д