Найти среднее геометрическое значение элементов матрицы - C#
Формулировка задачи:
Дана матрица M*N. Найти среднее геометрическое зна¬чение элементов матрицы и выяснить, каких элементов в матрице больше больших среднего геометрического или меньших среднего геометрического. c#
Решение задачи: «Найти среднее геометрическое значение элементов матрицы»
textual
Листинг программы
using System;
class Program
{
static void Main()
{
Console.Write("Введите количество строк в матрице: ");
int M = int.Parse(Console.ReadLine());
Console.Write("Введите количество столбцов в матрице: ");
int N = int.Parse(Console.ReadLine());
double count = (double)M * N;
int[,] matrix = new int[M, N];
Random r = new Random(); // объявление переменной для генерации случ. чисел
for (int i = 0; i < M; i++) // заполнения матрицы случ. числами
{
for (int j = 0; j < N; j++)
{
matrix[i, j] = r.Next(1, 99); // от 1 до 99
}
}
/*
//заполение матрицы с клавиатуры
Console.WriteLine();
Console.Write("Введите значение {0} ", count);
Console.WriteLine();
for (int i = 0; i < M; ++i)
{
for (int j = 0; j < N; ++j)
{
Console.Write("Введите значение элемента матрицы для строки {0}, столбец {1}: ", i,j);
matrix[i, j] = Convert.ToInt32(Console.ReadLine());
}
}
*/
Console.WriteLine();
Console.WriteLine("Получаем матрицу вида:");
Console.WriteLine();
for (int i = 0; i < M; i++) // вывод матрицы
{
for (int j = 0; j < N; j++)
{
Console.Write("{0,4}", matrix[i, j]);
}
Console.WriteLine();
}
double Mul = 1.0;
int moreAverage = 0;//больше среднего
int lessAverage = 0;//меньше среднего
//Подсчёт произведения элементов матрицы
for (int i = 0; i < M; i++)
{
for (int j = 0; j < N; j++)
{
Mul *= matrix[i, j];
}
}
//среднее геометрическое значение элементов матрицы
double averGeom = Math.Pow(Mul, 1.0 / count);
Console.WriteLine();
Console.WriteLine("Cреднее геометрическое значение элементов матрицы : " + averGeom);
/*Подсчёт каких элементов в матрице больше, больших среднего геометрического
или меньших среднего геометрического*/
for (int i = 0; i < M; i++)
{
for (int j = 0; j < N; j++)
{
if (averGeom < matrix[i, j])
moreAverage++;
else if (averGeom > matrix[i, j])
lessAverage++;
}
}
Console.WriteLine();
if (moreAverage > lessAverage)
Console.WriteLine("Элементов в матрице, которые больше среднего геометрического, больше.");
if (moreAverage < lessAverage)
Console.WriteLine("Элементов в матрице, которые меньше среднего геометрического, больше.");
Console.ReadKey();
}
}