| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > три в кубе = 26 |
| Автор: Dr.Wisdom 10.5.2006, 13:12 | ||||||||
Вот такая конструкция
выводит следующую строку
Ну уж что может быть проще? Присвоил значение переменной, а она уменьшаеться на единицу! На всякий DB_OUT выглядит так
Я впринцыпе обйду проблему, но ведь так же не бывает! Я вроди выспавшийся даже. Добавлено @ 13:16 ЗЫ. Это я ищу ближайшую степень тройки для числа u приведенная строка выводитсяь когда в u ввожу число, которое должно быть превращено в 27 (30 например)
|
| Автор: UnrealMan 10.5.2006, 13:58 |
Не на единицу, а на дробную часть (которая отбросилась при преобразовании double в int), близкую к единице. Когда вычисляешь выражения с плавающей точкой, набо быть готовым к тому, что в качестве результата вычисления вместо 27 может получиться что-то вроде 26.9999999999999982. cout при выводе округлит этот результат до 27, а преобразование в int просто отбросит дробную часть, отчего и получишь 26. |
| Автор: threef 11.5.2006, 16:50 |
| int r = exp(log(3)*p); тут как раз ошибка. В верхней строке округлил, в нижней - постеснялся |
| Автор: armageddon 11.5.2006, 17:51 |
| мдя,Dr.Wisdom, извини на наезд, но ты с типами умеешь работать? |
| Автор: Dr.Wisdom 12.5.2006, 00:19 |
| теоретически умею. но я жутко рассеяный. и у меня инерция сознания после долгой работы исключительно с плавающей токой. НУ ДА, ДА ЗНАЮ Я! ИДИОТ Я! НУ ЧТО ЕЩЕ МОГУ СКАЗАТЬ?!! |
| Автор: Dr.Wisdom 17.5.2006, 13:33 |
| Задал дурацкий вопрос. Невыспался, не заметил, что индексы в массиве не исправил. Не нашел как удалить сообщение. Поэтому написао это. |