Решите задачу с массивом

Добавить в массив «-1» после минимального элемента и «1» после максимального элемента.Если минимальных или максимальных элементов несколько,сделать вставку после каждого из них.

#include <iostream>
using namespace std;

int main()
{
    int size = 7;

    int *a, *b;
    a = new int[size];
    for (int i = 0; i < size; i++)
        cin >> a[i];

    int min = a[0], max = a[0];
    for (int i = 0; i < size; i++)
    {
        if (a[i] < min)
            min = a[i];
        if (a[i] > max)
            max = a[i];
    }

    int count = 0;
    for (int i = 0; i < size; i++)
        if (a[i] == max || a[i] == min)
            count++;

    int newSize = size + count;
    b = new int[newSize];

    for (int i = 0, x = 0; i < size; i++)
    {
        if (a[i] == min || a[i] == max)
        {
            b[x+1] = -1;
            b[x] = a[i];
            x += 2;
        }
        else
        {
            b[x] = a[i];
            x++;
        }
    }
    for (int i = 0; i < newSize; i++)
        cout << b[i] << " ";

    system("pause");
    return 0;
}

Немного грубовато, но код работает.

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

for (int i = 0, x = 0; i < size; i++)
    {
        if (a[i] == min || a[i] == max)
        {
            if (a[i] == min)
                b[x + 1] = -1;
            if (a[i] == max)
                b[x + 1] = 1;
            b[x] = a[i];
            x += 2;
        }
        else
        {
            b[x] = a[i];
            x++;
        }
    }

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

Ответить

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

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

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

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

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

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