Цитата
if #target = 0 // Проверяем есть ли цель?
goto main
end_if
А где считывание то само наличие цели? #target не задан.
Цитата
Проверка синтаксически верна?
Если флаг равен 0, то да. Но при этом вы не делаете никакого присваивания. Т.е. у вас сохранится предыдущее значение дистанции, как следствие вам необходимо будет в основном коде дополнительно проверять #target либо все-таки изменять значение дистанции.
Цитата
goto main
Не используйте goto. Это великое зло.
// Я бы, наверное, все-таки использовал -1, а не 0, если бы присваивал дистанцию при отсутствии цели.