Твоя программа работает неверно, т.к., во-первых, она не выводит все отрицательные числа, а только начало отрезка и то, если он отрицательный, то вывод такого же по модулю. Во-вторых, вывод в одной строке, что для восприятия не удобно. В-третьих, количество отрицательных чисел считается неверно. В-четвертых, твоя программа полностью валит элементарный тест с вводом отрезка от отрицательного до отрицательного, допустим [-4;-1]. Стоит еще подумать над решением.