Program zadacha;vara: array[1..1000] of integer;i,n,sum_pol,sum_otr: integer;beginwriteln('vvedite kol-vo elementov massiva');readln(n);for i:=1 to n do begina[i]:=random(1000)-500;write(a[i]:6);end; sum_pol:=0;sum_otr:=0;for i:=1 to n do beginif a[i]>0 then sum_pol:=sum_pol+a[i];end;writeln();writeln('udvoennaya summa polojit. chisel = ', sum_pol*2); for i:=1 to n do beginif (a[i]<0) and (i mod 2 <> 0) then sum_otr:=sum_otr+a[i];end; writeln('summa otricat. i nechetn. chisel = ', sum_otr);end.
Возможно, не самое эффективное решение #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; }
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку