Оператор модуля является двоичным целочисленным оператором - его нельзя использовать с плавающей точкой.Вместо этого вы должны использовать fmod (): -
float fmod (числитель с плавающей запятой, знаменатель с плавающей запятой);
Это определено в math.h.Существует также версия, использующая double, если вам это нужно.