uses crt;
type
tab=array[1..100] of integer;
var
i:byte;
a:tab;
licz,max,max1,max2,elem:integer;
begin
clrscr;
{..............................}
for i:=1 to 4 do
begin
writeln('Podaj ',i,' element ');
readln(a[i]);
end;
{..........................}
max:=a[1];
licz:=1;
{..............}
for i:=2 to 4 do
begin
if max<a[i] then
begin
licz:=licz+1;
max:=a[i];
end;
end;
writeln('a[',licz,']',max);
readln;
end.
Witam!
Mam taki problemik z napisaniem programu. Otóż mam za zadanie napisać program, który znajdzie mi 3 maksymalne elementy tablicy i wyświetli indeks tegoż to argumentu. Tablica nie może być sortowana. Problem mam z szukaniem kolejnych maksimów o ile znalezienie pierwszego jest łatwe to kolejnego już nie.
Próbowałem to zrobić w ten sposób dla 2nd maximum. Próbowałem z kolejnym forem w ten sposób:
max:=a[1];
licz:=1;
for i:=2 to 4
do
begin
if max1<a[i] and max1<>max then do
begin
licz:=licz+1;
max1:=a[i];
end;
end;
Pytanie co zrobić jeżeli max1 nie jest różne od max ?? To chyba zdaje się być kluczem do rozwiązania:D
dodanie znaczników <code class="pascal"> - fp