Почему программа на pascal выполняется бесконечно?

Есть три цифры: 1, 3, 7. Из них составляют числа в порядке возрастания (1, 3, 7, 11, 13 и т.д.) Необходимо найти число N-ное по счёту. Вот код:

Program Numbers_Maysen;
var N,k,c,i,flag: integer; s:string; label 1;
begin
read(N);
c:=0;
k:=0;
repeat
1: c:= c + 1;
str(c,s);
for i:=1 to length(s) do begin
if pos('1', s[i])=1 then
flag:= 1 else
flag:=0;
if flag = 0 then goto 1 else

if pos('3', s[i])=1 then
flag:= 1 else
flag:=0;
if flag = 0 then goto 1 else

if pos('7', s[i])=1 then
flag:= 1 else
flag:=0;
if flag = 0 then goto 1 else

if flag = 1 then k:=k+1;
end;
until k = N;
writeln(k);
end.
  • Вопрос задан
  • 286 просмотров
Пригласить эксперта
Ответы на вопрос 1
2ord
@2ord
Не вникая в сам код, могу посоветовать:
  1. Код нужно обрамить тегом code (в панели иконок с краю, "..."), обновив сообщение
  2. Программа зацикливается из-за того что не выполняется условие выхода из цикла
  3. Лучше избавиться от GOTO
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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