.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();
        }
    }
}

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


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

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

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