2.потеря данных происходит. Пустяк или нет - зависит от задачи. В вашем случае пустяк, в других - нет.
Все вещественные константы в вашем коде являются double, поэтому все ваши переменные при вычислениях переводятся в double, вычисляется результат как double и переводиться во float для сохранения результата.
Чтоб убрать сообщение:
- все переменные сделайте double или
- ко всем константам добавьте суффикс f, например: 1.f - тогда константы будут float и все вычисления будут происходить над float - потерь не будет, потому что не будет конвертации типов.
3.fabs - для вещественных чисел, abs - для целых. fabs определяется в math.h, abs - stdlib.h
4. Обычно в #include для своих хидеров используют кавычки, для системных/библиотечных - <>. Их разница в том, что в "" поиск заголовка начинается с каталога где находится текущий компилируемый файл, потом по всем остальным, известным компилятору местам. Для <> - поиск в текущем каталоге не производится, поэтому ваши собственные заголовки компилятор может не найти (если не указать опцию -I).
https://en.cppreference.com/w/c/preprocessor/include