Возможно, не самое эффективное решение #include <iostream> #include <cstdlib> #include <ctime> 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; }
Перед нами репродукция картины художника-мариниста Ивана Константиновича Айвазовского под названием «Девятый вал». Это — одна из его самых известных картин. Изображен на ней темный, бушующий океан. Громадная волна с пенистым гребнем неумолимо надвигается на крохотный обломок мачты. Можно догадаться, что корабль потерпел крушение. Оставшиеся в живых люди судорожно вцепились в мокрое дерево. Их пятеро. Все наполовину в холодной воде. Они обессилены, испуганы, истощены неравной борьбой со стихией. А за первой волной встает вторая, еще более грозная. Лучи восходящего солнца пронизывают водную толщу, придавая ей желтоватый оттенок. Картина поражает обилием и сочностью красок. Зеленые, синие, фиолетовые, розовые — все оттенки смешались в кипении морской стихии. С огромным, непередаваемым мастерством художник противопоставляет величественный, слепой в своей ярости океан горстке людей, наделенных силой и мужеством. Они будут бороться до конца, хоть и кажутся хрупкими песчинками по сравнению с морем. Смотрим на картину и кажется, что вода непрерывно движется, изменяется. Представляя себя на месте этих затерянных в океане людей, понимаем, насколько бесконечен их подвиг. Это подвиг настоящих моряков. Их силе воли и духа позавидует каждый.Как необъятно величие разбушевавшейся морской стихии! Как велика и несокрушима ее сила! Лавина водного потока невероятной мощи готова смести все на своем пути. Она словно говорит нам, что для нее не существует преград, и подтверждает это всем своим устрашающе-прекрасным видом. Блики лунного света оживляют картину, придают ей оригинальность и даже, в какой-то мере, романтическое звучание. Ощущение глобальности усугубляется неповторимым огненным заревом, поглотившим все небо и бросающим отблески на гребни вздыбленных волн. Пылающее ярко-красными всплесками где-то на горизонте, оно слегка затихает лишь высоко в небесах.В центре этой бушующей стихии оказалась группа людей. На обломках потерпевшего крушение корабля они отчаянно сражаются с волнами, словно бросая вызов всесокрушающей стихии. На что надеются эти люди? Откуда ждут Может, столкнувшись с бедствием, они не теряют присутствия духа и, сплотившись перед лицом общей опасности, стараются выжить в необъятных просторах бушующей бездны. Именно в этом и состоит мужество человека, стремящегося, несмотря ни на что, преодолевая любые преграды, добиться своей цели, выжить во что бы то ни стало. Вот как я понимаю идею художника, в чем вижу смысл его произведения. Великий мастер пейзажа, Айвазовский предстает перед нами и знатоком человеческих душ. Возвеличивая мощь морской стихии, он, вместе с тем, открывает перед нами героизм и отвагу людей, столкнувшихся с этой мощью и не устрашившихся ее. Очевидно, то, с каким мастерством художнику удается передать все подробности природных явлений и оттенки человеческих чувств, определяется опытом самого автора. Много путешествуя, будучи очевидцем различных событий, в том числе подвигов моряков Черноморского флота, Айвазовский искусно отобразил все впечатления в своих картинах. Это подтверждают такие его работы, как «Чесменский бой», «Черное море» и многие другие. Но картина «Девятый вал» является, на мой взгляд, одним из самых величественных и впечатляющих произведений художника.
#include <iostream>
#include <cstdlib>
#include <ctime>
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;
}