Из 5 номеров определить номер меньше максимального и больше всех остальных - C (СИ)

Узнай цену своей работы

Формулировка задачи:

a,b,c,d,e вводятся с клавиатуры,нужно найти и показать номер меньше максимального и больше всех остальных. Нужно написать программу с использованием IF или SWITCH. Смог сделать только чтобы находил самый большой номер,дальше не понимаю как делать.
#include <stdio.h>
main()
{
    int a,b,c,d,e,max;
    printf("a,b,c,d,e:\n");
    scanf("%d%d%d%d%d",&a,&b,&c,&d,&e);
    if (a>b) max=a; else max=b;
    if (max>c) max=max; else max=c;
    if (max>d) max=max; else max=d;
    if (max>e) max=max; else max=e; 

    printf("Max. Nomer: %d",max);

}

Решение задачи: «Из 5 номеров определить номер меньше максимального и больше всех остальных»

textual
Листинг программы
#include <stdio.h>
 
int main() {
    int a, b, c, d, e;
    int max, min, result;
    
    scanf("%d %d %d %d %d", &a, &b, &c, &d, &e);
    
    max = a;
    
    if ( max < b ) {
        max = b;
    }
    if ( max < c ) {
        max = c;
    }
    if ( max < d ) {
        max = d;
    }
    if ( max < e ) {
        max = e;
    }
    
    min = max;
    
    if ( min > a ) {
        min = a;
    }
    if ( min > b ) {
        min = b;
    }
    if ( min > c ) {
        min = c;
    }
    if ( min > d ) {
        min = d;
    }
    if ( min > e ) {
        min = e;
    }
    
    result = min;
    
    if ( result < a && a != max ) {
        result = a;
    }
    if ( result < b && b != max ) {
        result = b;
    }
    if ( result < c && c != max ) {
        result = c;
    }
    if ( result < d && d != max ) {
        result = d;
    }
    if ( result < e && e != max ) {
        result = e;
    }
    printf("%d\n", result);
    
    return 0;
}

Объяснение кода листинга программы

В этом коде определен набор из пяти чисел с помощью функции scanf. Затем эти числа сравниваются между собой, чтобы найти максимальное и минимальное. Переменная max инициализируется значением первого введенного числа. Затем она обновляется, если следующие числа больше текущего значения max. Аналогично, переменная min инициализируется значением первого введенного числа. Затем она обновляется, если следующие числа меньше текущего значения min. Если min оказывается больше первого числа, оно заменяет max. Затем происходит поиск числа, которое меньше максимального и больше всех остальных. Это делается путем сравнения min с каждым из чисел, кроме максимального. Если находится число, которое меньше min, оно заменяет min. Наконец, найденное число выводится на экран с помощью функции printf. Возвращаемое значение функции main равно 0, что означает успешное выполнение.

Оцени полезность:

7   голосов , оценка 4.429 из 5
Похожие ответы