Массив должен быть заполнен перед решением, иначе будет происходить деление на 0, возможно дело в этом. Во всех строчках где проиходит деление и значение присваивается целочисленной переменной, необходимо писать round(здесь делим) или trunc(здесь делим). Round округляет число по правилам математики, а trunc откидывает дробную часть.