e-olymp 2691. Проходной балл

Задача

Дан список учащихся с указанием годовых оценок по всем предметам. Для поступления в Школу Одаренных Детей необходимо, чтобы средний балл по всем предметам был не ниже, чем $K$. Определите, кого из перечисленных ребят могут зачислить в эту школу.

Формат входных данных

В первой строке дано число $N$ ($1 \leqslant N \leqslant 10000$), количество учащихся в списке. Каждая из следующих $N$ строк имеет вид: фамилия и имя, затем число $M_i$ ($1 \leqslant M_i \leqslant 50$) — количество предметов, которые изучал ученик, а затем годовые оценки по каждому из этих предметов.
В последней строке дано единственное число $K$ — проходной балл. Фамилия и имя — строки, состоящие не более чем из $20$ латинских букв. Все числа во входном файле натуральные и не превышают $10^9$.

Формат выходных данных

Требуется вывести список ребят, которые могут быть зачислены.

Тесты

Входные данные Выходные данные
1 3
Ivanov Ivan 2 7 9
Petrov Petr 1 7
Sidorov Sidor 2 10 8
4
Ivanov Ivan
Petrov Petr
Sidorov Sidor
2 1
Ivanov Ivan 1 6
5
Ivanov Ivan
3 4
Petrov Petr 10 1 2 3 4 5 6 7 8 9 10
Sidorov Sidor 5 8 8 8 4 4
Ivanov Ivan 0
Darienko Dasha 3 10 3 9
6
Sidorov Sidor
Darienko Dasha
4 2
Petrov Petr 10 1 2 3 4 5 6 7 8 9 10
Darienko Dasha 3 10 3 9
11
5 5
Petrov Petr 10 100000000 200000000 300000000 400000000 500000000 600000000 700000000 800000000 900000000 1000000000
Darienko Dasha 5 500000000 500000000 500000000 700000000 800000000
Sidorov Sidor 20 100000000 200000000 300000000 400000000 500000000 600000000 700000000 800000000 900000000 1000000000 500000000 500000000 500000000 700000000 800000000 500000000 500000000 500000000 700000000 800000000
Ivanov Ivan 8 600000000 600000000 600000000 800000000 200000000 1000000000 300000000 300000000
Sergeev Alexandr 1 700000000
600000000
Darienko Dasha
Sergeev Alexandr

Код

Оптимальное решение:

Более структурированное решение:

Решение

Введем данные в соответствующие структуры (см. комментарии в коде), вычислим средние баллы для каждого ученика и выведем фамилии и имена всех тех и только тех, чей средний балл выше проходного.
Т. к. все исходные данные натуральные и не превышают $10^9$ используем для их ввода тип int. При этом сумма оценок может выйти за пределы типа int ($50\cdot10^9 > 2 147 483 647$), поэтому для переменной sum используем тип long. Также заметим, что среднее арифметическое натуральных чисел может быть дробным числом, но в данном случаи средний проходной балл $K$ по условию являет натуральным числом, поэтому будет уместно отбросить дробную часть при сравнении, т. е. использовать целочисленных тип данных в вычислениях.

Ссылки

  • Задача на e-olymp
  • Код оптимального решения на ideone
  • Код решения со структурами на решения со структурами на ideone
  • Засчитанное оптимальное решение на e-olymp
  • Засчитанное структурированное решение на e-olymp
  • E-Olymp 568. Средняя зарплата

    Условие

    На некотором предприятии работает некоторое количество работников, но не менее двух: директора и главного бухгалтера. Известно также, что количество работающих не превышает 1000. Зная заработные платы кождого работника определить среднюю зарплату на предприятии.

    Входные данные

    Заработные платы работников (не обязательно в одной строке) в гривнах.

    Выходные данные

    Средняя зарплата на предприятии в гривнах с точностью 2 знака после десятичной точки.

    Тесты

    Входные данные Выходные данные
    1 100.50 300.50  200.50
    2 800 950 600.25 200.50  637.69
    3 1000 1200.50 790 600 980  914.10

    Код

    Решение

    Для того чтобы посчитать среднюю зарплату, нам нужно знать сумму зарплат всех работников sum  и количество работающих n. Прибавляем к сумме зарплаты z  до тех пор, пока есть что считывать из вводных данных. В тоже время считаем количество раз, чтобы узнать, сколько всего работников на предприятии. Выводим среднее арифметическое и указываем количество цифр после запятой.

    e-olymp 8352. Такси

    Условие задачи

    В час пик на остановку одновременно подъехали три маршрутных такси, следующие по одному маршруту, в которые тут же набились пассажиры. Водители обнаружили, что количество людей в разных маршрутках разное, и решили пересадить часть пассажиров так, чтобы в каждой маршрутке было поровну пассажиров. Требуется определить, какое наименьшее количество пассажиров придется при этом пересадить.

    Входные данные

    Три натуральных числа, не превосходящих 100 — количество пассажиров в первой, второй и третьей маршрутках соответственно.

    Выходные данные

    Выведите одно число — наименьшее количество пассажиров, которое требуется пересадить. Если это невозможно, выведите слово IMPOSSIBLE (заглавными буквами).

    Тесты

    Ввод Вывод
    1 1 2 3 1
    2 6 7 4 IMPOSSIBLE
    3 18 10 2 8
    4 54 10 96 IMPOSSIBLE
    5 27 27 27 0

    Код программы

    Решение

    Мы сможем рассадить пассажиров поровну в три маршрутки только тогда, когда их общее количество кратно трем. Если это условие не выполняется, выводим на экран слово IMPOSSIBLE.

    Иначе вычисляем среднее арифметическое исходного количества пассажиров каждой маршрутки по формуле: $\frac{b_{1}+b_{2}+b_{3}}{3}$ и находим минимальное количество пересаживаемых пассажиров, суммируя только положительные отклонения от среднего арифметического.

    Ссылки

    e-olymp 7368. Средний балл для фигуристов

    Задача взята с сайта e-olymp

    Задача

    Спортсменам-фигуристам [latex]n[/latex] судей выставляют оценки. Технический работник соревнований изымает все максимальные и все минимальные оценки, а для остальных оценок вычисляет среднее арифметическое значение. Этот результат считается баллом, полученным спортсменом. Найти такой балл для каждого спортсмена.

    Входные данные

    В первой строке находятся два целых числа: количество судей [latex]n[/latex] и количество спортсменов [latex]m[/latex]. В следующих [latex]m[/latex] строках находятся [latex]n[/latex] целых чисел – оценки всех судей[latex]\left( 0 \lt n \leqslant 10, 0 \lt m \leqslant 100 \right)[/latex] для каждого из фигуристов.

    Выходные данные

    В одной строке вывести m чисел с точностью до двух десятичных знаков — балл каждого спортсмена.

    Тесты

    #   ВХОДНЫЕ ДАННЫЕ ВЫХОДНЫЕ ДАННЫЕ
    1 5 4
    7 8 9 8 10
    6 5 5 4 7
    9 9 10 7 7
    7 7 10 9 8
    8.33 5.33 9.00 8.50
    2 3 4
    1 2 3
    3 5 2
    7 1 6
    9 8 3
    2.00 3.00 6.00 8.00
    3 10 2
    1 2 3 4 5 6 7 8 9 10
    1 1 1 2 2 2 3 3 3 4
    5.50 2.50

    Код программы (Потоковая обработка)

    Решение

    Читая каждую оценку:

    1. Добавляем оценку к общей сумме;
    2. Если введенная оценка равна минимальной, то добавляем ее к сумме минимальных и увеличиваем счётчик количества минимальных.
    3. Если введенная оценка меньше минимальной, то минимальной становится введённая оценка. Счетчик количества минимальных равен [latex]1.[/latex] Сумма минимальных равна введённой оценке.
    4. Если введенная оценка равна максимальной, то добавляем ее к сумме максимальных и увеличиваем счётчик количества максимальных.
    5. Если введенная оценка больше максимальной, то максимальной становится введённая оценка. Счетчик количества максимальных равен [latex]1.[/latex] Сумма максимальных равна введённой оценке.

    Тогда после введения всех [latex]n[/latex] оценок имеем:

    •  [latex]sumMax[/latex] — сумма максимальных оценок.
    •  [latex]sumMin[/latex] — сумма минимальных оценок.
    •  [latex]countMax[/latex] — количество максимальных оценок.
    •  [latex]countMin[/latex] — количество минимальных оценок.
    •  [latex]sumGl[/latex] — общая сумма оценок.

    Для нахождения среднего арифметического значения оценок, соответствующего условию будем применять формулу:  [latex]S_с = \frac{sumGL-sumMin-sumMax}{n-countMin-countMax}[/latex]

    Код программы (Массивы)

    Решение

    Делаем без счетчиков, запоминаем все элементы. Находим минимум и максимум, дальше проходим по всем оценкам и, если она не минимальная и не максимальная, добавляем к сумме и увеличиваем количество оценок, которые учитываются для среднего значения. В конце выводим среднее значение с двумя знаками после запятой.

    Ссылки

    Условие задачи на e-olymp

    Код программы на ideone (Потоковая обработка)

    Код программы на ideone (Массивы)

    e-olymp 7368. Средний балл для фигуристов

    Задача

    Спортсменам — фигуристам [latex]n[/latex] судей выставляют оценки. Технический работник соревнований изымает все максимальные и все минимальные оценки, а для остальных оценок вычисляет среднее арифметическое значение. Этот результат считается баллом, полученным спортсменом. Найти такой балл для каждого спортсмена.

    Входные данные

    В первой строке находятся два целых числа: количество судей [latex]n[/latex] и количество спортсменов [latex]m[/latex]. В следующих [latex]m[/latex] строках находятся [latex]n[/latex] целых чисел – оценки всех судей [latex](0 < n ≤ 10, 0 < m ≤ 100)[/latex] для каждого из фигуристов.

    Выходные данные

    В одной строке вывести [latex]m[/latex] чисел с точностью до двух десятичных знаков — балл каждого спортсмена.

    Тесты

    # Входные данные Выходные данные
    1 5 4
    7 8 9 8 10
    6 5 5 4 7
    9 9 10 7 7
    7 7 10 9 8
    8.33 5.33 9.00 8.50
    2 6 3
    6 7 6 5 4 3
    9 8 5 5 6 5
    7 6 4 1 2 2
    5.25 7.00 3.50
    3 4 5
    6 7 8 6
    9 8 5 4
    7 6 7 5
    4 3 9 3
    7 8 7 6
    7.00 6.50 6.00 4.00 7.00
    4 4 4
    7 7 2 3
    9 8 3 3
    5 4 9 7
    4 3 2 6
    3.00 8.00 6.00 3.50
    5 8 5
    4 5 6 7 7 4 9 8
    3 5 6 6 7 8 5 9
    7 6 3 9 3 7 9 7
    5 6 4 3 7 7 5 7
    9 8 4 6 7 9 9 4
    6.60 6.17 6.75 5.00 7.00

    Код программы

    Решение задачи

    Для решения задачи нам необходимо изъять все минимальные и максимальные значения в каждой строчке. Переменные [latex]a[/latex] и [latex]b[/latex] — это количество вхождений максимума и минимума соответственно. Берем любой элемент строки, который обозначили переменной [latex]x[/latex], и будем считать, что он минимальный и максимальный. Далее сравниваем элементы между собой и находим максимум и минимум и подсчитываем их количество. Ещё нам необходимо посчитать сумму оставшихся значений, а также их количество по формуле [latex]n-a-b[/latex]. А затем вычисляем среднее арифметическое для оставшихся значений по формуле [latex]\frac{sum}{n-a-b}[/latex] и выводим результат.

    Ссылка на e-olymp

    Ссылка на ideone

    A272. Количество осадков

    Задача

    Даны действительные числа [latex]a_{1}, a_{2}, …, a_{n}[/latex] – количество осадков (в миллиметрах), выпавших в Москве в течение [latex]n[/latex] лет. Вычислить среднее количество осадков [latex]average[/latex] и отклонение от среднего для каждого года [latex]d_{1}, d_{2}, …, d_{n}[/latex].

    Входные данные: 

    Последовательность действительных чисел.

    Выходные данные:

    Среднее количество осадков [latex]average[/latex].
    Последовательность действительных чисел [latex]d_{1}, d_{2}, …, d_{n}[/latex] — отклонение от среднего.

    Тесты

     №  Входные данные  Выходные данные
     1  0 0 0 0 0 0 1 0 0 0  0.1
    0.1 0.1 0.1 0.1 0.1 0.1 0.9 0.1 0.1 0.1
     2  1.23 2.34 3.45 4.56 5.67  3.45
    2.22 1.11 0 1.11 2.22
     3  234.109 4655.15 43.629 14.109  1236.75
    1002.64 3418.4 1193.12 1222.64
     4  5 5 5 5 5 5  5
    0 0 0 0 0 0

    Код программы

    Решение

    В цикле считываем числа из входного потока и прибавляем их к переменной [latex]average[/latex] (изначально [latex]average=0[/latex]), а также помещаем их в вектор [latex]v[/latex]. Далее делим [latex]average[/latex] на количество элементов в векторе, таким образом получим среднее количество осадков. Затем при помощи цикла поочередно будем выводить отклонение от среднего количества осадков для каждого года. Отклонением от среднего будет абсолютная величина разности соответствующего элемента вектора [latex]v[/latex] и среднего значения [latex]average[/latex].

    Ссылки

    A274. Среднее арифметическое всех членов последовательности, кроме одного

    Задача из сборника задач по программированию Абрамова С.А. 2000г.
    Даны действительные числа [latex]a_{ 1 }[/latex],…,[latex]a_{ 20 }[/latex]. Получить числа [latex]b_{ 1 }[/latex],…,[latex]b_{ 20 }[/latex], где [latex]b_{ i }[/latex] – среднее арифметическое всех членов последовательности [latex]a_{ 1 }[/latex],…,[latex]a_{ 20 }[/latex], кроме [latex]a_{ i }[/latex] ([latex]i[/latex] = 1,2,…,20).

    Обобщим задачу для последовательности длины [latex]n[/latex]
    Даны действительные числа [latex]a_{ 1 }[/latex],…,[latex]a_{ n }[/latex]. Получить числа [latex]b_{ 1 }[/latex],…,[latex]b_{ n }[/latex], где [latex]b_{ i }[/latex] – среднее арифметическое всех членов последовательности [latex]a_{ 1 }[/latex],…,[latex]a_{ n }[/latex], кроме [latex]a_{ i }[/latex] ([latex]i[/latex] = 1,2,…,[latex]n[/latex]).

    Входные данные:
    Последовательность действительных чисел.

    Выходные данные:
    [latex]n[/latex] чисел, [latex]i[/latex]-ое из которых является средним арифметическим всех членов последовательности, кроме [latex]i[/latex]-го ([latex]i[/latex] = 1,2,…,[latex]n[/latex]).

    Тесты

    Входные данные Выходные данные
    1 4 The sequence must consist of at least two elements.
    2 1 0 1 The arithmetic average of all elements of this series except the element №i is:
    for i = 1: 0.5
    for i = 2: 1
    for i = 3: 0.5
    3 10.1 2.4 11.3 0.8 The arithmetic average of all elements of this series except the element №i is:
    for i = 1: 4.8(3)
    for i = 2: 7.4
    for i = 3: 4.4(3)
    for i = 4: 7.9(3)
    4 2.5 -1.5 4 -9 1.22 The arithmetic average of all elements of this series except the element №i is:
    for i = 1: -1.32
    for i = 2: -0.32
    for i = 3: -1.695
    for i = 4: 1.555
    for i = 5: -1

    Код на C++

    Код на Java

    Решение
    Для начала, в первом цикле мы читаем числа из входного потока, помещаем их в вектор a и прибавляем к переменной sum, предназначенной для хранения суммы всех чисел последовательности. Последовательность должна состоять как минимум из двух элементов. Чтобы получить среднее арифметическое всех её членов, кроме [latex]i[/latex]-го, достаточно отнять [latex]i[/latex]-й элемент вектора a от значения переменной sum и разделить результат на количество членов такой неполной последовательности, а оно будет на единицу меньше размера вектора a. Таким образом заполняется вектор b, в котором хранятся элементы последовательности [latex]b_{ 1 }[/latex],…,[latex]b_{ n }[/latex], после чего требуемая последовательность выводится.

    Код на ideone.com (C++)
    Код на ideone.com (Java)
    Условие задачи (с.118)

    A295

    Задача. Даны целые числа [latex]a_{1},\ldots, a_{n}[/latex]. Наименьший член последовательности [latex]a_{1}, \ldots, a_{n}[/latex] заменить целой частью среднего арифметического всех членов, остальные члены оставить без изменения. Если в последовательности несколько членов со значением min [latex](a_{1}, \ldots, a_{n})[/latex], то заменить последний по порядку.

    Тесты

    Test Input Output
    1 2 4 8 16 2 4 2 4 8 16 6 4
    2 1 1 1 1 1 1 1 1
    3 -5 5 -10 10 -10 5 5 -5 5 -10 10 0 5 5
    4 2 6 9 -4 -5 7 13 2 6 9 -4 4 7 13
    5 0 0 0 0 0 1 0 0 0 0 0 1
    6 0 1 0 0 2 0 25 0 1 0 0 2 4 25

    Код программы

     

    Алгоритм

    Мы считываем все числа до конца входного потока и добавляем их в вектор. В полученной последовательности мы находим минимальный элемент, а также сумму всех членов. Затем мы вычисляем их среднее арифметическое, и извлекаем целую часть. Полученное число мы помещаем в вектор на место последнего минимального элемента, после чего выводим результат.

    Код программы

    ML4

    Задача:
    Даны два действительных положительных числа. Найти среднее арифметическое и среднее геометрическое этих чисел.

    Решение:

    Так как нам в задаче не указано какими будут числа по длинне, мы используем тип данных long double, который поможет охватить весь их диапозон.

    Для того, чтобы найти среднее арифметическое чисел нам нужно воспользоваться формулой [latex]A=\frac{x_1+x_2+ \ldots +x_n}{n}[/latex] , но так как у нас задано всего два числа, будем пользоваться этой формулой: [latex]A=\frac{a+b}{2}[/latex]

    Среднее геометрическое вычисляется по формуле :[latex]G=\sqrt[n]{x_1+x_2+ \ldots +x_n}[/latex] , но нам понадобиться формула только для двух чисел: [latex]G=\sqrt{a\cdot b }[/latex]

    Тесты:

     

    Входные данные Выходные данные
    1. -1 -3 -2

    1.73205

    2. 5 6 5.5

    5,47723

    3.  4 6  5

    4.89898

    4.  100 2.6  51.3

    16.1245

    Код: 

     

    Задача взята отсюда.

    Код программы.

    ML5

    Задача. Даны два действительных числа. Найти среднее арифметическое этих чисел и среднее геометрическое их модулей.

    Тесты

    Первое число Второе число Среднее арифметическое Среднее геометрическое
    156 82 119 113.102
    -1158 2569 705.5 1724.79
    256.3 289.5 272.9 272.395
    9854.08 -493 4680.54 2204.1
    -544.59 -12 -278.295 80.8398

    Алгоритм решения

    1.  Так как в постановке задачи не указан диапазон чисел, то рациональнее всего использовать  тип данных long double, охватывающий наибольшее количество возможных вариантов входных данных.
    2. Нам необходимо найти среднее арифметическое чисел, которое  представляет собой  сумму всех зафиксированных значений, делённую на их количество. Для нашей задачи формула приобретает следующий вид:  [latex]A=\frac{a+b}{2}[/latex].
    3.  Для нахождения среднего геометрического модулей двух чисел воспользуемся формулой  [latex] G=\sqrt{\left|x_1\times x_2 \right|} [/latex].

    Здесь находится код в ideone.com

    Код программы:

    Ю4.4

    Задача: Вычислить среднее значение [latex]x[/latex] и дисперсию [latex]d_{x}[/latex] для заданного массива [latex]X(k)[/latex] наблюдений:

    [latex]x_{avg}=\frac{1}{k}\sum_{i=1}^{k}{x_{i}}[/latex];   [latex]d_{x}=\frac{1}{k-1}\sum_{i=1}^{k}{\left(x_{i}-x_{avg^{}} \right)^{2}}[/latex]

    Тесты:

     k x среднее дисперсия
     3  4, 5, 8 5,66666666666667  4,333333
     5  2, 3, 6, 13, 22 9,2  69,7
     6  0, 5, 23, 7, 11, 1 7,83333333333333  71,366667
    2  error: incomplete input x
     0  error: wrong value k
     —  error: incomplete input k
    1 5 5  error: wrong value k

    Код программы:

    Код на языке Java:

    Ссылка: https://ideone.com/648LHr

    План программы:

    1. Назначение рабочих переменных
    2. Проверка ввода числа итераций
    3. Вычисление среднего значения
    4. Вычисление дисперсии
    5. Вывод результата

    Программа высчитывает среднее значение и дисперсию для заданного массива действительных чисел. Она состоит из двух циклов — в первом вычисляется среднее значение, а во втором цикле вычисляется дисперсия используя результаты предыдущего цикла — заполненный массив и среднее значение.

    Ссылка на ideone.com: http://ideone.com/t9ALrA

    А165г

    Даны действительные числа[latex] a_1,a_2,\ldots[/latex] Известно, что [latex] a_1 > 0 [/latex] и что среди [latex]a_2,a_3,\ldots[/latex]  есть хотя бы одно отрицательное число. Пусть [latex]a_1,\ldots,a_n[/latex]  – члены данной последовательности, предшествующие первому отрицательному члену ([latex]n[/latex] заранее неизвестно). Получить:
    г) среднее геометрическое  [latex]a_1,\ldots,a_n[/latex]

    Последовательность Среднее геометрическое
    2 2 2 -3 4 2
    3 6 8 -9 4 5 5.24148
    3 4 5 6 -2 4.35588
    15 12 13 -1 2 13.2761
    2 -1 2

    Код программы:

    Считывать числа с потока ввода. Умножаем числа пока не встретится отрицательное.После чего извлекаем корень используя данные счетчика.

    Код программы можно посмотреть тут

    А165в

    Задача

    Даны действительные числа  [latex] a_1 , a_2 \ldots[/latex]. Известно, что  [latex] a_1 > 0[/latex]  и что среди  [latex] a_1, a_2, \ldots [/latex] есть хотя бы одно отрицательное число. Пусть [latex] a_1 , \ldots, a_n[/latex] -– члены данной последовательности, предшествующие первому отрицательному члену ([latex] n [/latex] заранее неизвестно). Получить:

    в) среднее арифметическое   [latex] a_1 , \ldots, a_n[/latex]

    Тесты

    Ввод Вывод
    3 -2 -7 2 5 3
    3.4 0.5 0 -7 -8 2 1.3
    1 0 0 -2 0.333
    1.5 2.4 3 3.8 -7.5 11 0 2.675

    Код на С++

    Ideone (C++)

    Код на Java

    Ideone (Java)

    Решение

    Считываем в цикле числа из стандартного ввода, пока это возможно и пока не встретится отрицательное число. В том же цикле вычисляем сумму введённых чисел и их количество. Возвращаем сумму, делённую на количество, — среднее арифметическое.

    Ю 4.3

    От каждого из заданных m чисел x1, x2…xm отнять их среднее арифметическое:

    xср=1/m*(E от m при i=1)*xi; xi=xi-xср, i=1,2,…,m.

    Тесты:

     

    Ю4.10

    Задача: Найти среднее арифметическое элементов каждой строки матрицы [latex]Q\left(l,m \right)[/latex] и вычесть его из элементов этой строки.

    [latex]l[/latex] [latex]m[/latex] [latex]Q\left(l,m \right)[/latex] [latex]\acute{Q}\left(l,m \right)[/latex]
    2 3
    4 6 2
    5 9 10
    0 2 -2
    -3 1 2
    4 3
    -5 -2 -3
    6 5 0
    -8 9 -64
    468 -3 1
    -1.66667 1.33333 0.333333
    2.33333 1.33333 -3.66667
    13 30 -43
    312.667 -158.333 -154.333
    1 1 8 0

    C++:

    Java:

    У переменных [latex]l[/latex], [latex]m[/latex] (количество строк и столбцов соответственно) — тип int, т.к. это целые числа.
    Массив для данной матрицы [latex]q\left[l \right]\left[m \right][/latex] и массивы элементов суммы [latex]sum\left[l \right][/latex] и среднего арифметического [latex]sr\left[l \right][/latex] каждой строки  имеют тип double, так как могут содержать вещественные числа.

    В первом цикле инициализируем элементы массива [latex]sum\left[l \right][/latex] нулями, чтобы там не лежал мусор.

    Во втором цикле, который перебирает все элементы матрицы, вводятся эти элементы, считается их сумма и среднее арифметическое для каждой строки.

    В третьем цикле вычитаем из каждого элемента среднее арифметическое строки, в которой он находится, и выводим новое значение элемента на экран.

    Задача на Ideone:
    C++
    Java

    A162

    Задача:  Даны натуральные числа  [latex]i, n[/latex], действительные числа [latex] a_{1}, … ,a_{n} (i\leq n) [/latex]. Найти среднее арифметическое всех чисел  [latex]a_{1}, … ,a_{n}[/latex] кроме [latex] a_{i} [/latex].

    Т.к в условии задачи указано, что [latex] (i\leq n) [/latex] , то сделаем проверку, также выберем для [latex] i, n [/latex] тип unsigned int, т.к они натуральные ( [latex] >0 [/latex] )

    n i a[0] a[1] a[2] a[3] a[4] a_m
    5 2 1 2 3 4 5 3
    5 6 2 3 4 5 44

    Решение:

    Ссылка на ideone C++: http://ideone.com/URjsSJ

    Ссылка на ideone Java: http://ideone.com/TLfjVZ

     

    Сделаем цикл по [latex]j [/latex]. Если [latex]j\neq i [/latex], то суммируем [latex]a [/latex] в переменную [latex]s [/latex]