• Дан упорядоченный целочисленный массив. Сформировать второй массив всех таких различных значений, которые в первом массиве встречаются по два и более раза.
    type Massiv=array[1..100] of integer;
    var
    a,b:Massiv;
    j,i,n,g,buf,k,c:integer;
    begin
    randomize;
    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 do
    for k:=i+1 to n do
    while j<=n do begin
    if a[i]=a[k] then inc(c);
    if c>=2 then begin
    c:=0;
    buf:=a[i];
    b[j]:=buf;
    inc(j);
    end; end;

    writeln('Новый массив:');
    for j:=1 to n do
    write(b[j]:4);
    readkey
    End.
    //Что не так в этом коде?(((Q

Ответы 3

  • А что, массив всегда должен вводиться как упорядоченный по неубыванию?
  • Не всегда, через раз.
  • type Massiv=array[1..100] of integer;var a,b:Massiv;n,i,j,p:integer;beginrandomize;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);readkeyEnd.Пример:Ввод 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
    • Автор:

      giovani
    • 4 года назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years