Альтернативы и операторы goto в C?
Пример неудачный, здесь goto не нужен вообще.
Достаточно заменить его на break и обернуть те два оператора, которые он перепрыгивает, в проверку j == n.
За 20+ лет программирования на С ни разу при такой задаче не сталкивался с необходимостью использования goto. Операторы цикла в С настолько мощные, что запросто чуть подумав можно придумать, как от него отказаться. Вчитываться в код лень.