![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 05.08.2012
Сообщений: 4
|
![]()
Добрый день!
Я начал изучать С. И вот столкнулся с первой проблемой, никак не понять почему так происходит: Код:
Последний раз редактировалось Stilet; 05.08.2012 в 18:57. |
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]() Цитата:
магические цифры 5 и 9 имеют тип int Сначала целое 5 будет разделяно на целое 9. Полученный результат так же будет типа int Дробная часть будет попросту отброшена. И останется ноль. Измени этот код на: a=5/9.0; |
|
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 05.08.2012
Сообщений: 4
|
![]()
Спасибо, теперь все понятно)
Можно еще один вопрос: Код:
Код:
Насколько я понял double и float в сущности различаются количеством знаком после запятой и точностью. Но почему тогда в одном случае программа считает правильно, а в другом нет? Последний раз редактировалось Stilet; 05.08.2012 в 19:00. |
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]() Цитата:
тип double имеет размер 8 байт, а float только 4 байта. Они по разному хранят внутри себя данные. Ты передаешь в функцию адрес переменной типа double А функция думает, что там - float, и она записывает по этому адресу данные так, как буд то бы там float. Но поскольку для типа double данные хранятся по другому, то при дальнейшем чтении этих данных, тебе и выводится кракозябра всякая |
|
![]() |
![]() |
![]() |
#5 | |
Новичок
Джуниор
Регистрация: 05.08.2012
Сообщений: 4
|
![]() Цитата:
Последний раз редактировалось m.mshev; 05.08.2012 в 17:12. |
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]()
может быть тебе что-то вроде вот такого нужно:
Код:
|
![]() |
![]() |
![]() |
#7 |
Новичок
Джуниор
Регистрация: 05.08.2012
Сообщений: 4
|
![]()
Все теперь, понял. Еще раз спасибо!
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
C++: не могу разобраться...=( | Алиса Ростова | Помощь студентам | 0 | 03.12.2011 15:27 |
Не могу разобраться!!! | Яна Сафронова | Помощь студентам | 11 | 12.05.2010 17:56 |
не могу разобраться | Инспектор ГУЛ | Свободное общение | 7 | 20.09.2009 09:29 |