Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> деление, очень простой вопрос 
V
    Опции темы
Bogdan1024
  Дата 23.7.2006, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: нет
Всего: 13



int c0 = 1;
int c2 = 5;
int c1 = 400 -231 + 1;
double k = (c0/c2) * c1;
Почему в итоге k == 0 хотя все числа тут явно != 0 ?? 


--------------------
user posted image
PM MAIL   Вверх
Meeer
Дата 23.7.2006, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 3.6.2006
Где: Ukraine

Репутация: нет
Всего: нет



потомучто у тебя переменная k типа double. А по правилу этот тип приведется к интеджеру, т.е. останется только целая часть - т.е. 0.
Либо все переменные объяви как double, либо сделай вычисления в виде double. 
PM MAIL   Вверх
Bogdan1024
Дата 23.7.2006, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: нет
Всего: 13



А что это за правило такое?
Таки да, оказывается, нужно каждый множитель явно преобразовать в float. 


--------------------
user posted image
PM MAIL   Вверх
Oleg_Ci
Дата 23.7.2006, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Friend
**


Профиль
Группа: Участник
Сообщений: 485
Регистрация: 28.5.2006
Где: Новосиб.обл.

Репутация: 3
Всего: 30



А так ?
Код

int c0 = 1;
int c2 = 5;
int c1 = 400 -231 + 1;
double k = ((double)c0/c2) * c1;
 
PM MAIL   Вверх
Любитель
Дата 23.7.2006, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 24
Всего: 92



Цитата(Bogdan1024 @  23.7.2006,  17:32 Найти цитируемый пост)
А что это за правило такое?

Если в арифметической операции нет вещественных операндов, следовательно результат имеет тип int


--------------------
PM MAIL ICQ Skype   Вверх
Meeer
Дата 23.7.2006, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 3.6.2006
Где: Ukraine

Репутация: нет
Всего: нет



Bogdan1024, советую изучать С++ с книгой в руках, там много интерестных вещей написано!
Крайне рекомендую!  smile  
PM MAIL   Вверх
Bogdan1024
Дата 23.7.2006, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: нет
Всего: 13



Спасибо всем! 


--------------------
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0736 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.