
Tolakan
5 год назад
Массив с неповторимыми элементами. Даю99 поинтов.

ОТВЕТЫ

Lawrence Jack
Oct 24, 2020
//PascalABC.NET/FPC/Delphi/Lazarus
var
A: array of integer;
i, kM, N, j, k: byte;
begin
randomize;
write('Размер массива = ');
readln(N);
write('kM = ');
readln(kM);
SetLength(A, N);
write('Исходный массив: ');
for i := 0 to N - 1 do
begin
A[i] := random(5) + 1;
write(A[i]:3);
end;
writeln;
i := 0;
while i <= kM do
begin
j := i + 1;
while j <= kM do
begin
if A[j] = A[i] then
begin
for k := j to kM - 1 do
A[k] := A[k + 1];
kM := kM - 1;
end
else
j := j + 1;
end;
i := i + 1;
end;
write('Измененный массив: ');
for i := kM + 1 to N - 1 do A[i] := 0;
for i := 0 to N - 1 do write(A[i]:3);
writeln;
end.
Пример:
Размер массива = 10
kM = 6
Исходный массив: 5 1 1 2 5 2 5 1 4 5
Измененный массив: 5 1 2 0 0 0 0 0 0 0
var
A: array of integer;
i, kM, N, j, k: byte;
begin
randomize;
write('Размер массива = ');
readln(N);
write('kM = ');
readln(kM);
SetLength(A, N);
write('Исходный массив: ');
for i := 0 to N - 1 do
begin
A[i] := random(5) + 1;
write(A[i]:3);
end;
writeln;
i := 0;
while i <= kM do
begin
j := i + 1;
while j <= kM do
begin
if A[j] = A[i] then
begin
for k := j to kM - 1 do
A[k] := A[k + 1];
kM := kM - 1;
end
else
j := j + 1;
end;
i := i + 1;
end;
write('Измененный массив: ');
for i := kM + 1 to N - 1 do A[i] := 0;
for i := 0 to N - 1 do write(A[i]:3);
writeln;
end.
Пример:
Размер массива = 10
kM = 6
Исходный массив: 5 1 1 2 5 2 5 1 4 5
Измененный массив: 5 1 2 0 0 0 0 0 0 0
- Дополнительных переменных 3 вместо 2.
644
Смежные вопросы: