Регистрация
Войти
Стать экспертом Правила
Информатика

Дан упорядоченный целочисленный массив. Сформировать второй массив всех таких различных значений, которые в первом массиве встречаются по два и более раза.type Massiv=array[1..100] of integer;var a,b:Massiv;j,i,n,g,buf,k,c:integer;beginrandomize;write('Ввод n=');read(n);writeln('Ввод массива:');for i:=1 to n do a[i]:=random(20)-5;write('(');for i:=1 to n do write(a[i],';');write(')');writeln;j:=1;for i:=1 to n dofor k:=i+1 to n dowhile j<=n do beginif a[i]=a[k] then inc(c);if c>=2 thenbeginc:=0;buf:=a[i];b[j]:=buf;inc(j);end; end;writeln('Новый массив:');for j:=1 to n do write(b[j]:4);readkeyEnd.//Что не так в этом коде?(((Q

ОТВЕТЫ
type Massiv=array[1..100] of integer;
var 
a,b:Massiv;
n,i,j,p:integer;
begin
randomize;
write('Ввод n=');
readln(n);
writeln('Нужно неубывание (1) или невозрастание (2)?');
readln(p);
if p=2 then p:=-1; 
writeln('Массив:');
a[1]:=random(20)-5;
for i:=2 to n do a[i]:=a[i-1]+p*random(5);
write('(');
for i:=1 to n do write(a[i],' ');
write(')');
writeln;

i:=1; j:=0;
while i<n do
 begin
  if a[i]=a[i+1] then begin inc(j); b[j]:=a[i]; end;
  while (i<n)and(a[i]=a[i+1]) do inc(i);
  inc(i);
 end;
writeln('Новый массив:');
for i:=1 to j do write(b[i]:4);
readkey
End.

Пример:
Ввод n=20
Нужно неубывание (1) или невозрастание (2)?
1
Массив:
(11 12 12 12 16 16 17 21 25 25 26 30 30 32 36 36 38 42 45 47 )
Новый массив:
  12  16  25  30  36
519
Контакты
Реклама на сайте
Спрошу
О проекте
Новым пользователям
Новым экспертам