Найти среднее
Создадим консольное приложение
Пользователь вводит набор чисел. Требуется найти среднее
Сперва пользователь вводит N, сколько всего чисел в массиве, далее в каждой новой строке вводится новое число
Console.WriteLine("Введите N: ");
int N = int.Parse(Console.ReadLine());
// считываем N чисел
for (int i = 0; i < N; i++) {
int v = int.Parse(Console.ReadLine());
}Давайте расчитывать среднее на лету. Будем аккумулировать числа в переменную sum, чтобы расчитать сумму всех чисел.
Console.WriteLine("Введите N: ");
int N = int.Parse(Console.ReadLine());
int sum = 0; // переменная в которую будет накапливаться сумма
// считываем N чисел
for (int i = 0; i < N; i++) {
int v = int.Parse(Console.ReadLine());
sum += v;
}После того как будет считаны все числа, в переменной sum будет находится сумма всех введеных чисел. Осталось разделить ее на количество чисел N и мы получим среднее.
Console.WriteLine("Введите N: ");
int N = int.Parse(Console.ReadLine());
int sum = 0; // переменная в которую будет накапливаться сумма
// считываем N чисел
for (int i = 0; i < N; i++) {
int v = int.Parse(Console.ReadLine());
sum += v;
}
int result = sum / N;
Console.WriteLine($"Среднее = {result}");Давайте попробуем запустить и ввести разные наборы данных:
Введем N=3, и числа 1,2,3. Среднее должно быть 2, т.к. (1+2+3) / 2 = 6 / 2 = 3

Программа выполнила расчет корректно. Закроем программу, нажав любую клавишу и запустим ее снова, введя другой набор данных.
Теперь введем числа N=2, и числа 1,2. Среднее должны быть 1.5, т.к. (1+2) / 2 = 3 / 2 = 1.5

Результат не правильный. Почему так произошло?
Все дело в этой строчке:
int result = sum / N;Здесь мы используем целочисленный тип данных int для переменной result, а в правой части производим целочисленное деление двух int переменных (sum и N). Целочисленное деление не учитывает дробную часть, т.к. оперирует только целыми числами. Давайте явно приведем тип к такому который поддерживает операции с дробными числами, например к типу double (можно к float, в этом конкретном примере разницы не будет)
double result = sum / (double)N;Теперь введем предыдущий набор данных еще раз

Теперь расчет осуществляется правильно.
Агрегирование + фильтрация
Следующая задача использует массив, поэтому ее можно либо посмотреть сейчас для общего представляения, либо вернуться к ней позже в главе Массивы
Теперь решим другую задачу, требуется вывести все числа, которые больше или равны среднему. Решить такую задачу на лету, как мы делали ранее, без сохранения чисел в память уже не получится. Потому что до тех пор пока мы не считаем последнее число введенное пользователем мы не сможем расчитать среднее, а значит на лету определять какое-число подходит под критерий (фильтр) , а какое нет - не получится.
Для решения этой проблемы, запомним числа вводимые пользователем в память, а далее произведем требуемые расчеты с ними.
using System.Text;
Console.OutputEncoding = Encoding.UTF8;
Console.WriteLine("Введите N: ");
int N = int.Parse(Console.ReadLine());
int[] data = new int[N]; // создаем массив чисел длиной N, где будем запоминать введенные пользователм числа
// считываем N чисел
for (int i = 0; i < N; i++)
{
data[i]= int.Parse(Console.ReadLine()); // записываем очередное число в массив
}Далее разобьем задачу на две части:
1. Агрегрирование данных - поиск среднего
2. Фильтрация данных - отсеиваем только те, которые соотвествуют критерию - больше или равны среднему
Сперва найдем среднее и выведем его на экран
// расчитаем среднее пройдясь по массиву и накопив sum
int sum = 0; // аккумулятор суммы
for (int i = 0; i < N; i++)
{
sum += data[i];
}
// вычислим среднее
double avg = sum / (double)N;
Console.WriteLine($"Среднее = {avg}");
Теперь зная среднее давайте выведем все числа которы больше или равны среднему
//пройдемся еще раз по массиву и будем выводить числа, которые больше или равны среднему
Console.WriteLine("Числа больше среднего: ");
for (int i = 0; i < N; i++)
{
if (data[i] >= avg)
Console.WriteLine(data[i])
}
Проверим результат работы программы:

N=2, числа 1,2. Среднее 1.5. Из числе 1 и 2 , больше 1.5 является только 2
Теперь введем другой пример

N=3, числа 1,2,3. Среднее 2. Числа больше или равные среднему это 2,3. Все правильно.