Array62. Дан массив A размера N. Сформировать два новых массива B и C: в массив B записать все положительные элементы массива A, в массив C − все отрицательные (сохраняя исходный порядок следования элементов). Вывести вначале размер и содержимое массива B, а затем − размер и содержимое массива C.
>Решение Pascal
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | program Array62; var a,b,c:array[1..10] of integer; N,k,kb,kc:Integer; begin Write('N: '); Readln(N); Writeln('A: '); for k:=1 to N do begin write(k,' :'); readln(a[k]); end; kb:=0; kc:=0; for k:=1 to N do begin if a[k]>0 then begin inc(kb); b[kb]:=a[k]; end; if a[k]<0 then begin inc(kc); c[kc]:=a[k]; end; end; Writeln('B(',kb,'):'); for k:=1 to kb do writeln(k,' :',b[k]); Writeln('C(',kc,'):'); for k:=1 to kc do writeln(k,' :',c[k]); end. |
>
Решение C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | #include <stdio.h> int main(void) { float a[10],b[10],c[10]; int n; printf("N: "); scanf("%i",&n); int k; for (k=0; k<n; ++k){ printf("a[%i] : ",k+1); scanf("%f",&a[k]); } int kb=0,kc=0; for (k=0; k<n; ++k){ if (a[k]>0){ b[kb]=a[k]; ++kb; } if (a[k]<0){ c[kc]=a[k]; ++kc; } } printf("B: \n"); for (k=0; k<kb; ++k) printf(" %i: %f\n",k+1,b[k]); printf("C: \n"); for (k=0; k<kc; ++k) printf(" %i: %f\n",k+1,c[k]); return 0; } |