Середнє значення - 1#8358

Середнє значення - 1 (Розбір)

Знайдемо найменший і найбільший елемент масиву. Потім обчислимо суму ваги всіх учнів, виключивши тих, у кого вага дорівнює найменшому або найбільшому значенню. Позначимо цю суму , а кількість таких учнів .

Залишається обчислити середню вагу учнів, розділивши на , і вивести результат, округлений до цілого числа кілограмів.

Реалізація алгоритму

Оголосимо робочий масив.

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)