Почему переменной присваиваю другую переменную, а получается третье?
Изначальная задача сделать матрицу с спиральным заполнением числами, по часовой стрелке. Я соответственно заполнил строку "повернул" заполнил "столбец" -> повернул и тд. и вот когда я прохожу приведенный ниже цикл, в первый раз все ок, второй раз мне в переменную j попадает число 4 при padding= 2. Как это вообще возможно я совсем не понимаю, при условии что оба int объявлены. Ссылка на полный код функции - https://onlinegdb.com/TFxzWcB_I
твоя беда в том, что ты не понимаешь смысл, который у тебя несёт счётчик j
собственно, смысл у него чуть ли не в каждом цикле совершенно разный: в первом он всегда считает от нуля и только в индексации к нему прибавляется паддинг, во втором он как будто дублирует игрек, в третьем заменяет собой икс, который вообще нигде не используется...
вот к моменту написания четвертого цикла образовавшаяся каша дала о себе знать, ты попытался сварганить что-то среднее по смыслу между предыдущими циклами и запутался
получилось, что переменная j у тебя проделывает n - padding * 3 + 1 шагов, и все дальнейшие инварианты поехали
почему отладчик так себя ведёт - сказать не могу, но грешу на msvc
скажи, какой аргумент функции, попробую повторить
Что-то мне подсказывает, что точка останова на строке с циклом показывает значение переменной j из другой области видимости, а не из цикла. Попробуй сделать "шаг"
Сложно разбирать код... но проще вроде границы завести и менять их.
