Напишите программу. Массив состоит из 6 элементов. Его необходимо заполнить числами = индекс массива + день вашего рождения. Вывести элементы массива по образцу "Элемент массива 1 = 23"
Возможно, не самое эффективное решение #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; }
Версия языка: PascalABC.Net 3.2, сборка 1437 от 03.05.2017
1. Сохраняем текст модуля в файле garnaga.pas и выполняем компиляцию (Ctrl+F9)
unit garnaga;
interface
type Mass2d=array [,] of integer;
function GetMass(rand:boolean:=true):Mass2d;
function SumDiag(a:Mass2d):integer;
implementation
function GetMass(rand:boolean):Mass2d; begin var n:=ReadInteger('Количество строк/столбцов в массиве:'); if rand=true then begin var a:=ReadInteger('Минимальное значение для заполнения:'); var b:=ReadInteger('Максимальное значение для заполнения:'); Result:=MatrRandom(n,n,a,b) end else begin Writeln('Вводите элементы массива:'); Result:=ReadMatrInteger(n,n) end end;
function SumDiag(a:Mass2d):integer; begin Result:=0; var n:=a.RowCount-1; for var i:=0 to n do Result+=a[i,i]+a[i,n-i]; if n.IsEven then begin n:=n div 2; Result-=a[n,n] end end;
end.
2. Создаем новый файл и помещаем в него программу, использующую созданный модуль
uses garnaga;
begin var a:=GetMass; a.Println; Writeln; var b:=GetMass; b.Println; Writeln; var c:=GetMass(false); Writeln; Writeln('Sдиаг=',SumDiag(a)+SumDiag(b)+SumDiag(c)) end.
3. Запускаем программу на выполнение.
Пример работы: Количество строк/столбцов в массиве: 4 Минимальное значение для заполнения: -20 Максимальное значение для заполнения: 35 4 -14 -14 26 26 -6 12 22 13 10 -20 26 -3 22 14 -4
Количество строк/столбцов в массиве: 5 Минимальное значение для заполнения: 0 Максимальное значение для заполнения: 50 13 48 5 12 2 43 31 45 35 23 36 30 6 47 42 11 8 29 36 39 11 33 14 48 29
Количество строк/столбцов в массиве: 3 Вводите элементы массива: 1 6 2 8 3 4 7 0 5
Sдиаг=208
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку