Ваше условие в обоих циклах for оценивается как ложное.В первом случае:
for (int j = num;j < num && j > 0;j--)
// for(initialization; test-condition; updation)
Условие проверки является ложным на первой итерации, поскольку вы инициализировали j
до num
, и теперь вы проверяете, является ли j < num
ложным.Следовательно, он никогда не входит в этот цикл.
Аналогично, во втором случае:
for (int j = num;j > num;j++)
вы инициализировали j
num
и теперь проверяете, если j > num
, которыйочевидно ложно.Следовательно, содержимое этого цикла также никогда не выполняется.
Вы можете исправить это, изменив часть инициализации в обоих циклах for (как предложено @ zenwraight ):
for(int j = num-1; j > 0; j--) // first case
for(int j = num+1; ; j++) // second case