Вадим Сухотин
Мудрец
(14275)
6 лет назад
Прочитал комментарий выше. Всё ясно. Вот ваш текст:
var
n,r: integer;
begin
r:=0;
readln(n,r);
while r <= n do
begin
r:=r+1;
write(r, ' ');
end;
end.
Если цикл завершился, значит, перестало выполняться условие цикла, и в этом месте r=n+1. А вывести надо было число (n-r+1), которое и представляет собой количество чисел от r до n.
Иными словами, это количество считается не в цикле, а до него:
var
n,r,count: integer;
begin
readln(n,r);
count:=n-r+1;
while r <= n do
begin
r:=r+1;
write(r, ' ');
end;
write(" - (",count,")");
end.
Но если уж приспичило это количество именно посчитать в цикле, то так:
var
n,r,count: integer;
begin
readln(n,r);
count:=0;
while r <= n do
begin
r:=r+1;
write(r, ' ');
count:=count+1;
end;
write(" - (",count,")");
end.
==========
Только сейчас заметил, что у вас в начале идёт присваивание r:=0, А потом переменная r читается с консоли вместе с n. То есть она одновременно должна выполнять и роль счётчика чисел, и роль очередного числа? Так не бывает. Я разнёс эти функции по разным переменным: r и count.