2chu
@2chu

Как ПРАВИЛЬНО сравнить 3 числа на Pascal?

begin
  if m > e then
   begin
   if m < f then memo1.Lines.Add('Самый популярный ФИЛФАК ' + inttostr(f) + ' заявок') else
    if m = f then memo1.Lines.Add('Самый популярные МИФИТ и ФИЛФАК ' + inttostr(f) + ' заявок') else
    memo1.Lines.Add('Самый популярный МИФИТ ' + inttostr(m) + ' заявок')
   end
  else
    if m < e then
       begin
       if e > f then memo1.Lines.Add('Самый популярный ЕНО ' + inttostr(e) + ' заявок') else
        if e = f then memo1.Lines.Add('Самый популярные ЕНО и ФИЛФАК ' + inttostr(e) + ' заявок') else
        memo1.Lines.Add('Самый популярный ФИЛФАК ' + inttostr(f) + ' заявок')
       end
    else
     if m > f then memo1.Lines.Add('Самый популярные МИФИТ и ЕНО ' + inttostr(m) + ' заявок') else
      begin
       if f > m then memo1.Lines.Add('Самый популярный ФИЛФАК ' + inttostr(f) + ' заявок') else
        memo1.Lines.Add('Все факультеты одиннаково популярны ' + inttostr(m) + ' заявок');
      end;
end;


Суть в том, что если ввести 2 МИФИТА, 2 ЕНО и 1 ФИЛФАК он выводит (Самый популярный МИФИТ). Т.е даже при ложном условии M > E (это не так, они равны) - он приступает к выполнению этого условия. Т.к внутри всё ложно он использует
else
    memo1.Lines.Add('Самый популярный МИФИТ ' + inttostr(m) + ' заявок')


Переменные m,e,f - первые буквы слов МИФИТ, ЕНО и ФИЛФАК. Если кто не поймёт
  • Вопрос задан
  • 466 просмотров
Пригласить эксперта
Ответы на вопрос 1
Zoominger
@Zoominger
System Integrator
А почему бы не взять и не отсортировать массив?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы