C++Заполнить массив случайными числами в промежутке [-100,100] и переставить элементы так,

C++
Заполнить массив случайными числами в промежутке [-100,100] и переставить элементы так, чтобы все положительные элементы стояли в начала массива, а все отрицательные и нули в конце. Вычислите количество положительных элементов.

Задать свой вопрос
1 ответ
Возможно, не самое эффективное решение
include lt;iostreamgt;
include lt;cstdlibgt;
include lt;ctimegt;
int main()

    using namespace std;
    const int N = 10;
    int A[N];
    srand(time(0));
    for (int i = 0; i lt; N; ++i)
        A[i] = rand() % 201 - 100;
   
    //Вывод начального массива на экран
    for (int i = 0; i lt; N; ++i)
        cout lt;lt; A[i] lt;lt; "  ";
    cout lt;lt; endl;

    //Подсчитаем количества положительных и отрицательных
    int kpos = 0, kneg = 0;
    for (int i = 0; i lt; N; i++)
        if (A[i] gt; 0)
            ++kpos;
        else
            ++kneg;

    int * Apos = new int[kpos];
    int * Aneg = new int[kneg];
    int pos = 0, neg = 0;
    for (int i = 0; i lt; N; ++i)
        if (A[i] gt; 0)
            Apos[pos++] = A[i];
        else
            Aneg[neg++] = A[i];

    for (int i = 0; i lt; N; ++i)
        if (i lt; kpos)
            A[i] = Apos[i];
        else
            A[i] = Aneg[i - kpos];

    delete[] Apos;
    delete[] Aneg;

    //Вывод приобретенного массива на экран
    for (int i = 0; i lt; N; ++i)
        cout lt;lt; A[i] lt;lt; "  ";
    cout lt;lt; endl;
    return 0;


, оставишь ответ?
Имя:*
E-Mail:


Последние вопросы

Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт