Составить программу, которая запрашивает два целых числа для нахождения их суммы. Вывести на экран числа, сумма которых оказалась наименьшей

При выполнении программы, он не требует вводить заново цифры для суммы Вначале вводить две цифры и потом не понятно как выполняется программа

Var a,b,N, max, next, k: integer;Begin
      Write('Введите количество чисел'); Readln(n);
       write('Введите число a: '); read(a);
       write('Введите число b: '); read(b); 
      Write('Сумма чисел: ',a+b); Readln(max);
      k:=1;
      repeat
        write('Введите число a: ',a); Readln(next);
        write('Введите число b: ',b); Readln(next);
        K:=k+1;
        If next>max then max:=next
      Until k=n;
      Writeln(max);
      Readln
    End.

Ответы (1 шт):

Автор решения: Alex R.

Всегда форматируйте код, так проще разобраться и найти ошибку.

program test;

var
  a, b, N, max, Next, k: integer;
begin
  write('Введите количество чисел');
  readln(n);

  write('Введите число a: ');
  read(a);

  write('Введите число b: ');
  read(b);

  write('Сумма чисел: ', a + b);

  readln(max);

  k := 1;
  repeat
    write('Введите число a: ', a);
    readln(Next);

    write('Введите число b: ', b);
    readln(Next);

    K := k + 1;
    if Next > max then
      max := Next
  until k = n;

  writeln(max);

  readln;
end.

Проблема после вывода суммы чисел writeln('Сумма чисел: ', a + b);. По коду воспринимается, что это заголовок ко вводу, но это просто вывод. Поэтому ввод max остается без комментария и кажется, что программа зависла.

Думаю в этом месте вместо readln(max); должно быть max := a + b.

→ Ссылка