Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2018, 09:42   #1
Varya
 
Регистрация: 01.12.2018
Сообщений: 5
Вопрос выводит постоянно 10.Найти и вывести номер второго по величине массива

что не так?
var i,max1,max2:integer;
a:array [1..10] of integer;
begin
writeln('isx massiv');
for i:=1 to 10 do
begin
a[i]:=10+random(99-10+1);
write (a[i],' ');
end;
writeln;
begin
if a[1]>a[2] then begin max1:=a[1];
max2:=a[2];
end
else
begin max1:=a[2];
max2:=a[1];
end;
for i:=3 to 10 do
if (a[i]>max1) then
begin
max2:= max1;
max1:=a[i];
end
else
if (a[i]>max2) then
max2:=a[i];
end;
writeln(i);
end.
Varya вне форума Ответить с цитированием
Старый 01.12.2018, 10:12   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Зачем вы в конце выводите i? Не уверены, что оно будет 10 после цикла? Вам же элемент надо выводить.
p51x вне форума Ответить с цитированием
Старый 01.12.2018, 10:27   #3
Varya
 
Регистрация: 01.12.2018
Сообщений: 5
По умолчанию

нужно вывести НОМЕР/индекс второго по величине элемента массива
если я буду выводить max2, то будет выводится значение элемента
Varya вне форума Ответить с цитированием
Старый 01.12.2018, 10:27   #4
Varya
 
Регистрация: 01.12.2018
Сообщений: 5
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Зачем вы в конце выводите i? Не уверены, что оно будет 10 после цикла? Вам же элемент надо выводить.
нужно вывести НОМЕР/индекс второго по величине элемента массива
если я буду выводить max2, то будет выводится значение элемента
Varya вне форума Ответить с цитированием
Старый 01.12.2018, 10:28   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Ну так запоминайте номера, а не значения. Проблема в чем?
p51x вне форума Ответить с цитированием
Старый 01.12.2018, 10:36   #6
Varya
 
Регистрация: 01.12.2018
Сообщений: 5
По умолчанию

добавив новую переменную?
Varya вне форума Ответить с цитированием
Старый 01.12.2018, 10:37   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Зачем? Храните в этих же.
p51x вне форума Ответить с цитированием
Старый 02.12.2018, 14:34   #8
Varya
 
Регистрация: 01.12.2018
Сообщений: 5
По умолчанию НАЙТИ И ВЫВЕСТИ ИНДЕКС ВТОРОГО ПО ВЕЛИЧИНЕ МАКСИМАЛЬНОГО ЭЛЕМЕНТА.

дико туплю.должен выводится номер второго по величине элемента массива.Что нужно исправить?бегин и энд где только не ставила

Код:
var
  i, max1, max2, max: integer;
  a: array [1..10] of integer;

begin
  writeln('isx massiv');
  for i := 1 to 10 do
  begin
    a[i] := 10 + random(99 - 10 + 1);
    write(a[i], ' ');
  end;
  writeln;
  if a[1] > a[2] then begin
    max1 := a[1];
    max2 := a[2];
  end
  else
  begin
    max1 := a[2];
    max2 := a[1];
  end;
  for i := 3 to 10 do 
    if (a[i] > max1) then
    begin
      max2 := max1;
      max1 := a[i];
    end
    else 
    if (a[i] > max2) then
      
      max2 := a[i];
  max := i;
  writeln(max);
  
  
end.
______________________
Используйте тег [CODE] (кнопка с решеткой # в форме сообщения) при вставке кода на форум. Подробнее в FAQ

Последний раз редактировалось Alex11223; 03.12.2018 в 00:54.
Varya вне форума Ответить с цитированием
Старый 02.12.2018, 14:54   #9
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Я вам уже в прошлой теме говорил: СОХРАНЯЙТЕ ИНДЕКСЫ МАКСИМАЛЬНЫХ ЭЛЕМЕНТОВ, А НЕ САМИ ЭЛЕМЕНТЫ.

А по вашему коду:
Цитата:
Сообщение от Varya Посмотреть сообщение
if a[1] > a[2] then begin
нет инициализации индекса

Цитата:
Сообщение от Varya Посмотреть сообщение
if (a[i] > max1) then
begin
нет присвоения нового значения

Цитата:
Сообщение от Varya Посмотреть сообщение
if (a[i] > max2) then
нет бегин/энда
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как найти второй по величине элемент массива? Wellshumor Помощь студентам 9 28.09.2018 00:33
помогите найти ошибку неправильно выводит номер первого максимального элемента и элем BTS Общие вопросы C/C++ 1 10.04.2015 20:42
Найти второй по величине элемент массива (за два прохода; за один проход) (на Паскале) Мaрина Помощь студентам 2 26.09.2011 13:49
Найти 3-ий по величине элемент массива.. PavelZet Помощь студентам 10 07.05.2009 21:06