Помогите разобраться с кодом расчета min, max, average - C#
Формулировка задачи:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int min, max;
double i = 0;
int[,] Arr = new int[10, 10];
Random rand = new Random();
for (int a = 0; a < Arr.GetLength(0); a++)
{
for (int b = 0; b < Arr.GetLength(1); b++)
{
Arr[a, b] = rand.Next(-20, 20);
Console.Write(Arr[a,b] + "\t");
}
}
min = max = Arr[0, 0];
for (int a = 0; a < Arr.GetLength(0); a++)
{
for (int b = 0; b < Arr.GetLength(1); b++)
{
if (min > Arr[a, b]) min = Arr[a, b];
if (max < Arr[a, b]) max = Arr[a, b];
}
}
for (int a = 0; a < Arr.GetLength(0); a++)
{
for (int b = 0; b < Arr.GetLength(1); b++)
{
i = i + Arr[a, b];
}
}
i = i / (Arr.Length - 1);
Console.WriteLine("Минимальное значение " + min);
Console.WriteLine("Максимальное значение " + max);
Console.WriteLine("Среднее значение " + i);
Console.ReadLine();
}
}
}Решение задачи: «Помогите разобраться с кодом расчета min, max, average»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int min, max; // Объявляем переменные целого типа
double i = 0; // и инициализируем переменную вещественного типа
int[,] Arr = new int[10, 10]; // объявляем двумерный массив целого типа размерность 10х10
Random rand = new Random(); // Инициализируем объект класса Random (генератор случайных чисел)
// В следующем двухуровневом цикле забиваем в наш массив данные
for (int a = 0; a < Arr.GetLength(0); a++)
{
for (int b = 0; b < Arr.GetLength(1); b++)
{
Arr[a, b] = rand.Next(-20, 20); // От -20 до +19 включительно!
Console.Write(Arr[a, b] + "\t");// И сразу же выводим значение на консоль (\t - Горизонтальная табуляция)
}
}
min = max = Arr[0, 0]; // мину и максу присваиваем первый элемент из массива
// В следующем двухуровневом цикле ищем минимальный и максимальный элемент из нашего двумерного массива
for (int a = 0; a < Arr.GetLength(0); a++)
{
for (int b = 0; b < Arr.GetLength(1); b++)
{
if (min > Arr[a, b]) min = Arr[a, b]; // если вдруг находим элемент значение которого меньше минимума, то теперь минимуму присваиваем значение этого элемента массива
if (max < Arr[a, b]) max = Arr[a, b]; // если вдруг находим элемент значение которого больше максимума, то теперь максимуму присваиваем значение этого элемента массива
}
}
// В следующем двухуровневом цикле суммируем все элементы и записываем значение в переменную i, кстати, это можно было сделать и в прошлом цикле, да и вообше всё можно было сделать в одном цикле: и присваивание рандомных значений и нахождение мин/макса и нахождение суммы эл-ов
for (int a = 0; a < Arr.GetLength(0); a++)
{
for (int b = 0; b < Arr.GetLength(1); b++)
{
i = i + Arr[a, b];
}
}
i = i / (Arr.Length - 1); // Здесь находим среднее арифметическое значение по нашему двумерному массиву (матрице), делим сумму элементов на количество элементов
// Далее выводим найденные значения на экран
Console.WriteLine("Минимальное значение " + min);
Console.WriteLine("Максимальное значение " + max);
Console.WriteLine("Среднее значение " + i);
Console.ReadLine(); // Приостанавливаем консоль до нажатия enter
}
}
}