Что я не так делаю?
паскаль
поиск двух максимальных чисел

program ee;
const N = 5;
var
a : array [1..5]of integer;
iMax,max, iiMa,ma ,i : integer;
begin
for i:= 1 to N do begin
read (a[i]);
end;
write (' числа ', a );
iMax := a[1];// присваиваем для начального сравнения
for i := 1 to N do
if a[i] > iMax then//сравниваем 5 чисел и берём наибольшее 
begin
iMax := a[i];//число
max := i;//на каком месте
end;
write (' первое максимальное значение ', iMax,' ',max );
iiMa := a[1];//присваиваем для начального сравнения
ma := 1;//
for i := 1 to N do//
if (iiMa < a[i])and(ma < max)then// ищем второе наибольшее число

begin
iiMa := a[i];//
ma := i//
end;
write (' второе максимальное значение ', iiMa,' ', ma);
end.


Аноним: Дай условие задачи, я гляну что не так
KMLV: Условие: Ввести с клавиатуры массив из пяти элементов, найти два максимальных элемента и их номера.

Ответы

Ответ дал: Аноним
1
Нашел. у тебя ma изначально 1, тоесть условие ma<>max почти всегда не будет иметь значения 

Аноним: а вообще оно так себе пашет если вводить 54321
Аноним: program ee;
const N = 5;
var
a : array [1..5]of integer;
iMax,max, iiMa,ma ,i : integer;
begin
for i:= 1 to N do
read (a[i]);
write (' числа ', a );
iMax := a[1];
max:=1;
for i := 1 to N do
if a[i] > iMax then
begin
iMax := a[i];
max := i;
end;
write (' первое максимальное значение ', iMax,' ',max );
iiMa := a[1];
ma := 1;
if iiMa=iMax then begin iiMa:=a[2];
ma:=2;
end;
for i := 1 to N do
if (iiMa < a[i])and (i <> max) then
begin
iiMa := a[i];
ma := i
end;
write (' второе максимальное значение ', iiMa,' ', ma);
end.
KMLV: оно так себе пашет если идёт комбинация 123475 или 12435
Аноним: Вот твоя доработанная, сравни, если что - пиши, поясню
KMLV: if iiMa=iMax then begin iiMa:=a[2];
ma:=2; для чего это?
Аноним: Если внезапно 1ый элемент будет максимальным, то дальше действия просто не пойдут, то есть iiMa и ma не изменятся
Аноним: Так и останутся значениями a[1] и 1. А это так же может оказаться и значенияiMax и max
KMLV: А ясно. Спасибо ещё раз.
Аноним: Если будут еще вопросы, возможно, по другим программам - пиши в личку)
KMLV: хорошо
Вас заинтересует