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;
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;
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
выпиши в свою тетрадь те правила этикета которые тебе не были
Разные вопросы.
Анна хорошо учится у неё много подруг свободное от учёбы время
Обществознание.
10) Килограмм конфет дороже килограмма печенья на 52 р. За 8
Математика.
Во сколько раз число атомов кислорода в земной коре больше числа
Химия.
Составить монолог от имени дневника двоечника 7-10 предложений
Русский язык.
Рассматривая литературный язык как сложное взаимодействие книжного языка и разговорного,В.И.Чернышёв горячо
Разные вопросы.
Облако тегов