Дан массив А ( 28 ) . Найти сумму положитель " ых элементов массива . Если сумма будет больше 100 , то обнулить элементы в чётных ячейках , ссли сумма будет меньше или равна 100 , то обнулить элементы в нечетных ячейках
На PascalABC.NET пишется в несколько строчек.
begin var n:=28; var a:=ArrRandom(n,-15,15); a.Println; var s:=a.Where(t->t>0).Sum; Writeln('Сумма равна ',s); if s>100 then Range(1,n-1,2).ForEach(i->begin a[i]:=0 end) else Range(0,n-1,2).ForEach(i->begin a[i]:=0 end); a.Printlnend.
#include #include #include using namespace std; const int n = 28; int main() { int A[n]; int sum = 0; cout << "Source array: \n";<br> srand(time(NULL)); for (int i = 0; i < n; i++) { A[i] = rand() % 23 - 10; if (A[i] > 0) sum += A[i]; cout << A[i] << " ";<br> } cout << "\nSum = " << sum << endl;<br> cout << "\nNew array: \n";<br> if (sum > 100) for (int i = 0; i < n; i++) { if (i % 2 == 1) A[i] = 0; cout << A[i] << " ";<br> } else for (int i = 0; i < n; i++) { if (i % 2 == 0) A[i] = 0; cout << A[i] << " ";<br> } cout << endl;<br> system("pause"); return 0; }
Const n=28; var a:array[1..n] of integer; i:byte; s:integer; begin randomize; for i:=1 to n do begin a[i]:=random(41)-20; Write(a[i],' '); if a[i]>0 then s:=s+a[i] end; writeln; if s>100 then begin i:=2; while i<=n do<br> begin a[i]:=0; i:=i+2 end end else begin i:=1; while i<=n do<br> begin a[i]:=0; i:=i+2 end end; writeln('Сумма равна ',s); for i:=1 to n do Write(a[i],' '); writeln end.