Hər bir idmançı üçün minimal və maksimal qiymətləri tapaq. Sonra və qiymətlərini nəzərə almadan ortalama balı hesablayın.
Misal
Birinci fiquristin minimal qiyməti , maksimal qiyməti -dur. və -dan fərqli qiymətlərin orta ədədi (8 + 9 + 8) / 3 = 8.33-ə bərabərdir.
Sonuncu fiquristin minimal qiyməti , maksimal qiyməti -dur. və -dan fərqli qiymətlərin orta ədədi (8 + 9) / 2 = 8.50-ə bərabərdir.
Alqoritmin Tədbiqi
Hakimlərin sayını və idmançıların sayını oxuyun.
scanf("%d %d", &n, &m);Hər bir fiquristin məlumatlarını ardıcıl işləyirik.
for (i = 0; i < m; i++)
{
scanf("%d", &mas[0]);Cari -ci fiqurist üçün ən kiçik və ən böyük qiymətləri tapaq.
min = max = mas[0];
for (j = 1; j < n; j++)
{
scanf("%d", &mas[j]);
if (mas[j] > max) max = mas[j];
if (mas[j] < min) min = mas[j];
}Aşağıdakını hesablayın:
Qalan qiymətlərin cəmini dəyişənində.
Qalan qiymətlərin sayını dəyişənində.
sum = cnt = 0;
for (j = 0; j < n; j++)Ən kiçik və ən böyük ballar hesablamada nəzərə alınmır.
if ((mas[j] != min) && (mas[j] != max))
{
sum += mas[j];
cnt++;
}-ci fiqurist üçün orta qiymətlər hesablayaraq çap edirik.
res = 1.0 * sum / cnt;
printf("%.2lf ", res);
}
printf("\n");Python realizasiyası
Hakimlərin sayını və idmançıların sayını oxuyun.
n, m = map(int,input().split())Hər bir fiquristin məlumatlarını ardıcıl işləyirik.
for _ in range(m):
lst = list(map(int,input().split()))Cari fiqurist üçün ən kiçik və ən böyük qiymətləri tapın.
min_el = min(lst)
max_el = max(lst)Aşağıdakını hesablayın:
Qalan qiymətlərin cəmini dəyişənində.
Qalan qiymətlərin sayını dəyişənində.
s = sum(x for x in lst if x != min_el and x != max_el)
cnt = sum(1 for x in lst if x != min_el and x != max_el)Cari fiqurist üçün orta qiymətləri hesablayın və çap edin.
print("%.2f" %(s / cnt), end = ' ')