Найти два разных max в масииве - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Всем доброго времени суток! Программку набросал, вреде работает, но не до конца. почему-то находит два одинаковых max на одних и тех же местах, а надо чтобы даже если числа msx в массиве одинаковые, то выводился бы разный индекс этих чисел. Вот код программы:
Листинг программы
  1. program massiv5;
  2. const N=25;
  3. type x=array [1..N] of integer;
  4. var a:x;
  5. i:integer;
  6. max1,max2:integer;
  7. imax1, imax2:integer;
  8. begin
  9. randomize;
  10. for i:=1 to N do
  11. begin
  12. a[i]:= -50+random(101);
  13. write (A[i]:4)
  14. end;
  15. writeln;
  16. imax1:=1;
  17. max1:=A[1];
  18. for i:=2 to N do
  19. if max1<a[i] then
  20. begin
  21. max1:=a[i];
  22. imax1:=i
  23. end;
  24. writeln ('1-й Максимальный элемент в массиве=',max1);
  25. writeln ('Его индекс=',imax1);
  26. imax2:=2;
  27. max2:=A[2];
  28. for i:=3 to N do
  29. if (max2<a[i]) and (max2<>max1)then
  30. begin
  31. max2:=a[i];
  32. imax2:=i
  33. end;
  34. writeln ('2-й Максимальный элемент в массиве=',max2);
  35. writeln ('Его индекс=',imax2);
  36. end.
Всем БОЛЬШОЕ спасибо за помощь!!!

Решение задачи: «Найти два разных max в масииве»

textual
Листинг программы
  1. const N=25;
  2. type x=array [1..N] of integer;
  3. var a:x;
  4. i:integer;
  5. max1,max2:integer;
  6. imax1, imax2:integer;
  7. begin
  8.  randomize;
  9.   for i:=1 to N do
  10.    begin
  11.     a[i]:= -50+random(101);
  12.     write (A[i]:4)
  13.    end;
  14.   writeln;
  15.  imax1:=1;
  16.  max1:=A[1];
  17.  if a[2]>max1
  18.   then
  19.    begin
  20.     max2:=max1;imax2:=1;
  21.     max1:=a[2];imax1:=2
  22.    end
  23.   else
  24.    begin
  25.     max2:=a[2];imax2:=2
  26.    end;
  27.  for i:=3 to n do
  28.   begin
  29.    if a[i]>max1
  30.     then begin max2:=max1;imax2:=imax1;max1:=a[i];imax1:=i end
  31.     else if (a[i]=max1)or(a[i]>max2)
  32.            then begin max2:=a[i];imax2:=i end
  33.   end;
  34.  writeln ('1-й Максимальный элемент в массиве=',max1);
  35.  writeln ('Его индекс=',imax1);
  36.  writeln ('2-й Максимальный элемент в массиве=',max2);
  37.  writeln ('Его индекс=',imax2);
  38. end.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы