Середнє число#108

Середнє число (Розбір)

Розглянемо рішення за допомогою повного перебору, використовуючи умовний оператор. Середнім числом серед , , буде:

Розглянемо рішення з використанням функцій мінімуму та максимуму. Середнім числом серед , , буде a + b + c – \text{min}(a, b, c) – \text{max}(a, b, c).

Розглянемо рішення з використанням сортування. Прочитаємо три числа в масив довжиною 3 та відсортуємо його. Середній елемент масиву є середнім серед трьох чисел.

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

Читаємо вхідні дані. Обчислюємо відповідь за формулою та виводимо її.

scanf("%d %d %d", &a, &b, &c);
if ((b <= a && a <= c) || (b >= a && a >= c)) res = a;
else if ((a <= b && b <= c) || (a >= b && b >= c)) res = b;
else res = c;
printf("%d\n", res);

Реалізація алгоритму – за допомогою min і max

#include <stdio.h>

int a, b, c, res;

int min(int x, int y) {
    return (x < y) ? x : y;
}

int max(int x, int y) {
    return (x > y) ? x : y;
}

int main(void) {
    scanf("%d %d %d", &a, &b, &c);
    res = a + b + c - min(a, min(b, c)) - max(a, max(b, c));
    printf("%d\n", res);
    return 0;
}

Реалізація алгоритму – за допомогою сортування

#include <cstdio>
#include <algorithm>
using namespace std;

int m[3];

int main(void) {
    scanf("%d %d %d", &m[0], &m[1], &m[2]);
    sort(m, m+3);
    printf("%d\n", m[1]);
    return 0;
}

Java реалізація

import java.util.*;

public class Main {
    static int min(int x, int y, int z) {
        return Math.min(x, Math.min(y, z));
    }

    static int max(int x, int y, int z) {
        return Math.max(x, Math.max(y, z));
    }

    public static void main(String[] args) {
        Scanner con = new Scanner(System.in);
        int a = con.nextInt();
        int b = con.nextInt();
        int c = con.nextInt();
        int res = a + b + c - max(a, b, c) - min(a, b, c);
        System.out.println(res);
        con.close();
    }
}

Python реалізація

a, b, c = map(int, input().split())
res = a + b + c - min(a, b, c) - max(a, b, c)
print(res)