Задать вопрос
14 мая, 17:55

C++

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

+3
Ответы (1)
  1. 14 мая, 21:48
    0
    Возможно, не самое эффективное решение

    #include

    #include

    #include

    int main ()

    {

    using namespace std;

    const int N = 10;

    int A[N];

    srand (time (0)) ;

    for (int i = 0; i < N; + + i)

    A[i] = rand () % 201 - 100;

    //Вывод исходного массива на экран

    for (int i = 0; i < N; + + i)

    cout << A[i] << " ";

    cout << endl;

    //Подсчитаем количества положительных и отрицательных

    int kpos = 0, kneg = 0;

    for (int i = 0; i < N; i++)

    if (A[i] > 0)

    ++kpos;

    else

    ++kneg;

    int * Apos = new int[kpos];

    int * Aneg = new int[kneg];

    int pos = 0, neg = 0;

    for (int i = 0; i < N; + + i)

    if (A[i] > 0)

    Apos[pos++] = A[i];

    else

    Aneg[neg++] = A[i];

    for (int i = 0; i < N; + + i)

    if (i < kpos)

    A[i] = Apos[i];

    else

    A[i] = Aneg[i - kpos];

    delete[] Apos;

    delete[] Aneg;

    //Вывод полученного массива на экран

    for (int i = 0; i < N; + + i)

    cout << A[i] << " ";

    cout << endl;

    return 0;

    }
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «C++ Заполнить массив случайными числами в интервале [-100,100] и переставить элементы так, чтобы все положительные элементы стояли в начала ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы