Задать вопрос
@POBOGO
18 лет, учусь программировать.

Как правильно прийти к решению? Программирование на С?

Набралось немного вопросов, может кто-то ответить?
1. 5b93f42791aec397182720.jpeg
Листинг: https://gist.github.com/kobylinsky/7955e2166b48463...
Всё ли правильно?
2. warning C4244: =: преобразование "double" в "float", возможна потеря данных -- как это убрать? Действительно ли происходит потеря данных или это пустяк?
3. Какая разница между fabs и abs?
4. Какая разница между < match > и "match" - почему в одной библиотеке используются кавычки, а в другой знак уравнения.

Новичок-студент. Прошу не бросать камни.
  • Вопрос задан
  • 168 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
@res2001
Developer, ex-admin
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
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы