Максимальный элемент массива в C++

Здравствуйте. Подскажите, как лучше найти максимальный элемент массива на языке C++?

Андрей, возьмите первый элемент массива за максимальный. Проходите в цикле по всем элементам этого массива. Если какой-либо элемент больше max — присваиваете значение этого элемента переменной max.

#include <iostream>
using namespace std;

int main()
{
    int arr[10] = {1, 3, 2, 4, 8, 11, 3, 3, 8, 7};
    int max = arr[0];

    for (int i = 0; i < 10; ++i) {
        if (arr[i] > max) {
            max = arr[i];
        }
    }

    cout << max << endl;
    return 0;
}

А как найти четыре максимальных элемента?

#include <iostream>
using namespace std;

static void quick_sort(int *arr, int low, int high) {
    // Алгоримт быстрой сортировки
    // http://ru.wikipedia.org/wiki/Быстрая_сортировка

    int i = low;
    int j = high;
    int x = arr[(low + high) / 2];
    int temp;

    do {
        while (arr[i] < x) {
            ++i;
        }
        while (arr[j] > x) {
            --j;
        }
        if (i <= j){
            temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
            i++; j--;
        }
    } while (i <= j);

    if (low < j) {
        quick_sort(arr, low, j);
    }
    if (i < high) {
        quick_sort(arr, i, high);
    }
}

int main()
{
    // размер массива, задается пользователем
    int size;
    cin >> size;

    int *list = new int [size];

    // заполнить массив руками или из файла
    for (int i = 0; i < size; ++i) {
        cin >> list[i];
    }

    // отсортировать массив по возрастанию
    quick_sort(list, 0, size - 1);

    // вывести последние 4 элемента отсортированного массива
    for (int i = size - 1; i > size - 5; --i) {
        cout << list[i] << endl;
    }
    return 0;
}

P.S. Взял алгоритм сортировки по ссылке селевита.

нахождение max не работает если вводить все отрицательные числа. Как быть?

дан массив целых чисел а1,…, а10. Найти максимальный элемент массива и поменять его местами с первым элементом (Помогите решить)

как мне найти максимальный элемент среди элементов,кратных 3

#include <iostream>
using namespace std;

int main()
{
    int arr[10] = {1, 3, 2, 4, 8, 11, 3, 3, 8, 7};
    int x = 0;

    for (int i = 0; i < 10; ++i) {
        if (x < arr[i]) { //если х менше чем элемент массива  
            x = arr[i];   //то х будет равно этому элементу  
        }
    }

    cout << x << endl;
    return 0;
}
  1. Дан массив чисел. Найти наибольший элемент, поставить его первым.

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.