// PascalABC.NET 3.2, сборка 1385 от 14.02.2017 // Внимание! Если программа не работает, обновите версию!
begin var n:=ReadInteger('Количество строк в массиве:'); var m:=ReadInteger('Количество столбцов в массиве:'); Writeln('*** Исходный массив [',n,',',m,'] ***'); var a:=MatrRandom(n,m,-99,99); a.Println(4); Writeln(4*a.ColCount*'-'); for var j:=0 to m-1 do a[1,j]:=5; a.Println(4) 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; }
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('Количество строк в массиве:');
var m:=ReadInteger('Количество столбцов в массиве:');
Writeln('*** Исходный массив [',n,',',m,'] ***');
var a:=MatrRandom(n,m,-99,99);
a.Println(4); Writeln(4*a.ColCount*'-');
for var j:=0 to m-1 do a[1,j]:=5; a.Println(4)
end.
Пример
Количество строк в массиве: 6
Количество столбцов в массиве: 8
*** Исходный массив [6,8] ***
9 -3 -27 -90 43 -54 0 -49
-2 91 -12 -10 -21 19 52 5
26 41 79 98 91 -50 87 -50
-23 -24 -63 17 -59 75 -43 -62
-27 -13 93 2 -58 -43 -22 -90
5 94 90 -26 81 46 5 -12
9 -3 -27 -90 43 -54 0 -49
5 5 5 5 5 5 5 5
26 41 79 98 91 -50 87 -50
-23 -24 -63 17 -59 75 -43 -62
-27 -13 93 2 -58 -43 -22 -90
5 94 90 -26 81 46 5 -12