Знайдемо найменший і найбільший елемент масиву. Потім обчислимо суму ваги всіх учнів, виключивши тих, у кого вага дорівнює найменшому або найбільшому значенню. Позначимо цю суму , а кількість таких учнів .
Залишається обчислити середню вагу учнів, розділивши на , і вивести результат, округлений до цілого числа кілограмів.
Реалізація алгоритму
Оголосимо робочий масив.
int w[1000];Читаємо вхідні дані. Кількість вхідних чисел підраховуємо в змінній .
n = 0;
while (scanf("%d", &w[n]) == 1) n++;Знаходимо найменший і найбільший елемент масиву.
min = max = w[0];
for (i = 0; i < n; i++)
{
if (w[i] > max) max = w[i];
if (w[i] < min) min = w[i];
}Обчислюємо суму ваг і кількість учнів , виключивши учнів з найбільшою та найменшою вагою.
s = cnt = 0;
for (i = 0; i < n; i++)
if (w[i] != min && w[i] != max)
{
s = s + w[i];
cnt++;
}Виводимо відповідь, округлену до цілого числа кілограмів.
printf("%.0lf\n", 1.0 * s / cnt);Реалізація алгоритму — min_element, max_element
Оголосимо робочий масив.
vector<int> w;Читаємо вхідні дані.
while (scanf("%d", &x) == 1)
w.push_back(x);Знаходимо найменший і найбільший елемент масиву.
min_el = *min_element(w.begin(), w.end());
max_el = *max_element(w.begin(), w.end());Обчислюємо суму ваг і кількість учнів , виключивши учнів з найбільшою та найменшою вагою.
s = cnt = 0;
for (int x : w)
if (x != min_el && x != max_el)
{
s += x;
cnt++;
}Виводимо відповідь, округлену до цілого числа кілограмів.
printf("%.0lf\n", 1.0 * s / cnt);Python реалізація
import sysЧитаємо вхідні дані.
lst = []
for line in sys.stdin:
lst.extend(map(int,line.split()))Знаходимо найменший і найбільший елемент списку.
max_el = max(lst)
min_el = min(lst)Обчислюємо суму ваг і кількість учнів , виключивши учнів з найбільшою та найменшою вагою.
cnt = sum = 0
for x in lst:
if x != max_el and x != min_el:
cnt += 1
sum += xОбчислюємо і виводимо відповідь, округлену до цілого числа кілограмів.
res = round(sum / cnt)
print(res)