Предмет: Информатика, автор: KMLV

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

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 почти всегда не будет иметь значения 

KMLV: оно так себе пашет если идёт комбинация 123475 или 12435
KMLV: if iiMa=iMax then begin iiMa:=a[2];
ma:=2; для чего это?
KMLV: А ясно. Спасибо ещё раз.
KMLV: хорошо
Похожие вопросы
Предмет: Математика, автор: PinkElephant