![]() |
|
Модераторы: bsa |
![]()
|
|
| BEST13 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 11.4.2008 Где: Ukraine Репутация: нет Всего: нет |
Есть программа:
вся проблема в том что при проверки первого варианта( if ((x > -1) && (A < 15)) Y=A/(x+1); ) всегда выводит значения У = 0,0000 Во всех остальных все правильно... не могу понять в чем дело.. |
|||
|
||||
| leniviy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 552 Регистрация: 8.2.2003 Где: Спб Репутация: нет Всего: 5 |
потому что целые? Попробуйте Y=A/(x+1.0);
|
|||
|
||||
| миг |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 15.9.2008 Репутация: нет Всего: 1 |
или попробуй написать Y=((float)A)/((float)(x+1));
--------------------
Oaks may fall when reeds stand the storm. |
|||
|
||||
| Modul |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 17.2.2006 Репутация: нет Всего: нет |
Достаточно приводить к float только в знаменателе. --------------------
I'll be back ! |
|||
|
||||
| BEST13 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 11.4.2008 Где: Ukraine Репутация: нет Всего: нет |
Оба способа действуют, спасибо.
Только не могу понять как первый переводит в float, и почему надо только знаменатель приводить? разве при делании так не получается float? |
|||
|
||||
| leniviy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 552 Регистрация: 8.2.2003 Где: Спб Репутация: нет Всего: 5 |
||||
|
||||
| BEST13 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 11.4.2008 Где: Ukraine Репутация: нет Всего: нет |
||||
|
||||
| leniviy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 552 Регистрация: 8.2.2003 Где: Спб Репутация: нет Всего: 5 |
Он сначала делит два инта, получает int, и уже потом преобразует во float. Вы, вероятно, ожидали, что раз результат деления присваивается переменной типа float, то само деление тоже будет float. Нет, не будет.
Добавлено @ 20:38 Кстааа....
Так вообще нельзя делать. printf ожидает на входе тип double, а тут float. оказывается, можно Это сообщение отредактировал(а) leniviy - 12.4.2011, 21:05 |
|||
|
||||
| BEST13 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 11.4.2008 Где: Ukraine Репутация: нет Всего: нет |
ага , понял спс так вроде модификатор %f для float, а для double - %lf Это сообщение отредактировал(а) BEST13 - 12.4.2011, 22:30 |
|||
|
||||
| leniviy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 552 Регистрация: 8.2.2003 Где: Спб Репутация: нет Всего: 5 |
http://c-faq.com/varargs/promos.html
|
|||
|
||||
| BEST13 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 11.4.2008 Где: Ukraine Репутация: нет Всего: нет |
Ага, спасибо понятно! |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |