Как найти минимальное и максимальное число в массиве на C++?

Пользователь

от gage , в категории: C/C++ , 2 года назад

Как найти минимальное и максимальное число в массиве на C++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

3 ответа

Пользователь

от gussie.jones , 2 года назад

@gage Вот мой небольшой пример как можно найти минимальное и максимальное число в C++, for цикл я думаю это единственный и самый быстрый способ:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>

int main() {
    int arr[] = {2, 3, 1, 4, 6, 0};

    // Объявим первый элемент как максимум
    int max = arr[0];
    // Объявим первый элемент как минимум
    int min = arr[0];

    for (int i : arr) {
        if (i > max)
            max = i;
        if (i < min)
            min = i;
    }

    // Вывод: Max: 6
    std::cout << "Максимум : " << max << std::endl;
    // Вывод: Min: 0
    std::cout << "Минимум : " << min << std::endl;
}

Пользователь

от NicolasSsh , 2 года назад

@gage  Для примитивной программы, которая будет находить минимальное и максимальное число, нам достаточно воспользоваться двумя циклами.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>

int main()
{
    int _size; // Назначаем переменную, содержащую размер массива
    std::cin >> _size; // Позволяем пользователю ввести размер массива с клавиатуры

    int* array = new int[_size]; // Создаем массив, выделяя под него память

    for (int i = 0; i < _size; i++) {
        std::cin >> array[i]; // Заполняем массив с клавиатуры
    }

    int max = array[0]; // В качестве первого максимального числа берем первый элемент.
    int min = array[0]; // В качестве первого минимального числа берем первый элемент.

    for (int i = 0; i < _size; i++) {
        for (int j = 0; j < _size; j++) {
            if (array[i] > array[j] && array[i] > max) max = array[i]; // Каждый элемент сравниваем с каждым элементом соответственно
            if (array[i] < array[j] && array[i] < min) min = array[i];
        }
    }

    std::cout << "Max : " << max << std::endl; // Выводим максимальное значение
    std::cout << "Min : " << min << std::endl; // Выводим минимальное значение

    // Вывод : 
    // Входные данные : {150, 21, 32, 44, 83} (Длина массива - 5)
    // Выход : 
    // Max : 150
    // Min: 21
}


Пользователь

от stephania , 2 года назад

@gage Используйте algorithm пакет в C++ чтобы найти минимальное или максимально число, посмотрите проблему можно решить в пару строк:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <algorithm>


int main(int argc, char *argv[]) {
    int arr[] = {4, 5, 1, 3, 2, 8};

    int min = *std::min_element(std::begin(arr), std::end(arr));
    int max = *std::max_element(std::begin(arr), std::end(arr));


    // Вывод: Макс: 8
    std::cout << "Макс : " << max << std::endl;
    // Вывод: Мин: 1
    std::cout << "Мин : " << min << std::endl;

    return 0;
}