Понял, что ошибка в присвоении переменной maximum нуля, т.е. с отрицательными числами программа будет выдавать 0 всегда. Так вот, ошибку понял, а исправить как - не понял :)