С++

В произвольно заданном одномерном массиве определить два элемента с наибольшими значениями и обнулить все элементы между ними. Как это сделать?

Например так:

#include <iostream>

using namespace std;

const int ARR_SIZE = 100;

void print(ostream& os, int *ar, int length) {
    for (int i = 0; i < length; ++i) {
        cout << ar[i] << " ";
    }
    cout << "\n";
}

int main() {

    setlocale(LC_ALL, "Russian");

    int len;
    cout << "Количество элементов массива 2..100: ";
    cin >> len;

    int idx1 = 0, idx2 = 0;
    int arr[ARR_SIZE];

    cout << "Введите элементы массива" << endl;
    for (int i = 0; i < len; ++i) {
        cout << "[" << i << "]: ";
        cin >> arr[i];
        if (arr[i] > arr[idx1]) {
            idx2 = idx1;
            idx1 = i;
        }
        else {
            if (arr[i] > arr[idx2]) {
                idx2 = i;
            }
        }
    }

    cout << "\nВведено:\n";
    print(cout, arr, len);

    if (idx1 > idx2) {
        int tmp = idx1;
        idx1 = idx2;
        idx2 = tmp;
    }
    for (int i = idx1 + 1; i < idx2; ++i) {
        arr[i] = 0;
    }

    cout << "\nМассив после обработки:\n";
    print(cout, arr, len);

    //system("pause");
}

С использованием STL только для ввода-вывода.
Еще неплохо было бы прикрутить проверку на введеное количество элементов массива, но влом.
Если использовать vector, то можно обойтись без ограничения на длину массива и без запроса количества элементов.

Ответить

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

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

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

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

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

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