Кол-во повторяющихся элементов

  • Автор темы NemoI3
  • Дата начала
N

NemoI3

#1
Для массива А[sub]1[/sub],...А[sub]20[/sub] найти кол-во повторяющихся элементов.

Код:
var i,j,k,m:integer; a:array[1..20] of integer;
begin
randomize; m:=0; for i:=1 to 20 do begin
a[i]:=random(20)-10;
stringgrid1.Cells[0,i-1]:=inttostr(a[i]);
end;
for i:=1 to 19 do
for j:=i+1 to 20 do begin
if a[i]=a[j] then k:=1 else k:=0;
m:=m+k;
end;
label1.caption:=inttostr(m);
end.
чувствую, что где-то ошибся, но не вижу где!
Выручите пожалуйста!
 
09.11.2009
665
1
#2
Код:
uses crt;
const N=20;
var a,b:array[1..N] of integer;
i,j,m:integer;
ind:boolean;
begin
for i:=1 to N do
begin
write('a[',i,'] = ');
readln(a[i]);
end;
clrscr;
for i:=1 to n do
write(a[i],' ');
writeln;
m:=0;
for i:=1 to N-1 do
begin
ind:=false;
for j:=i+1 to N do {проверка повтаряется ли елемент далее в масиве}
if a[i]=a[j] then ind:=true;
for j:=1 to m do {был ли повтор елемента до этого}
if a[i]=a[j] then ind:=false; 
if ind=true then {если все условия выполнились}
begin
m:=m+1; {то увеличеваем счетчик}
b[m]:=a[i]; {и добавляем елементв список "повторов"}
end;
end;
writeln('kol-vo',m);
readln;
end.