Orta qiymət - 1#8358

Orta qiymət - 1 (Həll təhlili)

Massivin ən kiçik və ən böyük elementini tapaq. Sonra çəkisi ən kiçik və ya ən böyük olan tələbələr istisna olmaqla bütün tələbələrin çəkilərinin cəmini hesablayırıq. Bu cəmi , bu cür tələbələrin sayını isə ilə göstərək.

Son olaraq, tələbələrin orta çəkisini -ni -yə bölərək hesablayır və nəticəni tam kiloqrama qədər yuvarlaqlaşdırıb çap edirik.

Alqoritmin realizasiyası

İşçi massiv elan edək.

int w[1000];

Giriş məlumatlarını oxuyuruq. Giriş ədədlərinin sayını dəyişənində hesablayırıq.

n = 0;
while (scanf("%d", &w[n]) == 1) n++;

Massivin ən kiçik və ən böyük elementini tapırıq.

min = max = w[0];
for (i = 0; i < n; i++)
{
  if (w[i] > max) max = w[i];
  if (w[i] < min) min = w[i];
}

Ən böyük və ən kiçik çəkili tələbələr istisna olmaqla çəkilərin cəmi və tələbələrin sayı hesablanır.

s = cnt = 0;
for (i = 0; i < n; i++)
  if (w[i] != min && w[i] != max)
  {
    s = s + w[i];
    cnt++;
 }

Cavabı tam kiloqrama qədər yuvarlaqlaşdırılmış şəkildə çıxardırıq.

printf("%.0lf\n", 1.0 * s / cnt);

Alqoritmin realizasiyası — min_element, max_element

İşçi massiv elan edək.

vector<int> w;

Giriş məlumatlarını oxuyuruq.

while (scanf("%d", &x) == 1)
  w.push_back(x);

Massivin ən kiçik və ən böyük elementini tapırıq.

min_el = *min_element(w.begin(), w.end());
max_el = *max_element(w.begin(), w.end());

Ən böyük və ən kiçik çəkili tələbələr istisna olmaqla çəkilərin cəmi və tələbələrin sayı hesablanır.

s = cnt = 0;
for (int x : w)
  if (x != min_el && x != max_el) 
  {
    s += x;
    cnt++;
  }

Cavabı tam kiloqrama qədər yuvarlaqlaşdırılmış şəkildə çıxardırıq.

printf("%.0lf\n", 1.0 * s / cnt);

Python realizasiyası

import sys

Giriş məlumatlarını oxuyuruq.

lst = []
for line in sys.stdin:
  lst.extend(map(int,line.split()))

Siyahının ən kiçik və ən böyük elementini tapırıq.

max_el = max(lst)
min_el = min(lst)

Ən böyük və ən kiçik çəkili tələbələr istisna olmaqla çəkilərin cəmi və tələbələrin sayı hesablanır.

cnt = sum = 0
for x in lst:
  if x != max_el and x != min_el:
    cnt += 1
    sum += x

Cavabı tam kiloqrama qədər yuvarlaqlaşdırılmış şəkildə hesablayıb çıxardırıq.

res = round(sum / cnt)
print(res)