11. Дан массив чисел. Найти наибольший элемент, поставить его первым.

  1. Дан массив чисел. Найти наибольший элемент, поставить его первым.
    Я поставил первым,но вот как сделать так чтобы этого макс числа не было в массиве.?
#include <iostream>
using namespace std;
int main(){
    int m[100],i,max=0,n;
    cin >> n;
    for (i = 0; i < n; i++)
    {
        cin >> m[i]; 
        if (m[i]>max)
            max = m[i];
    }
    cout << max << "  ";
    for (i = 0; i < n; i++)
    {
        cout << m[i]<<" ";
    }
    system("pause");
    return 0;
}

Anas, если совсем тупо, то можно просто в цикле распечатки массива поставить условие, печатать значение, если оно не равно max.

А если не тупо, то при поиске максимального элемента надо запоминать позицию (индекс) максимального элемента в массиве. Потом сдвинуть все элементы от начала массива до позиции максимального на один элемент вправо и в первую позицию скопировать максимальный элемент.

Кстати, твой алгоритм поиска максимального элемента не будет работать, если все элементы массива отрицательные.

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

Ответить

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

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

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

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

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

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