Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
tika
0 / 0 / 0
Регистрация: 26.10.2013
Сообщений: 16
#1

Почему в ответе inf ? - C++

20.03.2014, 22:28. Просмотров 903. Ответов 8
Метки нет (Все метки)

Уважаемые гуру, помогите решить проблему. Компилил программу из учебника Праты "Язык программирования
С++ лекции и упражнения 2011" (Кстати, каково ваше мнение о данном учебнике?)
Не пойму, почему в ответе вылезло "bmi=inf"?
Вот код.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <cmath>
int main ()
{
using namespace std;
double fd;
double d=fd*12;
const double mk=0.0254;
double m=d*mk;
const double kgk=2.2;
double p;
double kg=p/kgk;
double htp=pow(m,2);
double bmi=kg/htp;
cout <<"Enter height in feet and inches:";
cin >>fd;
cout <<"Enter weight in pounds:";
cin >>p;
cout <<"bmi="<< kg/htp <<endl;
return 0;
}
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6248 / 5851 / 1891
Регистрация: 18.12.2011
Сообщений: 14,992
Завершенные тесты: 1
20.03.2014, 22:50     Почему в ответе inf ? #2
Цитата Сообщение от tika Посмотреть сообщение
double fd;
double d=fd*12
fd Не присвоено начальное значение
recoder
130 / 130 / 28
Регистрация: 13.09.2013
Сообщений: 260
Записей в блоге: 2
20.03.2014, 22:50     Почему в ответе inf ? #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Сравните с вашим и подумайте
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cmath>
int main ()
{
using namespace std;
double fd;
double p;
cout <<"Enter height in feet and inches:";
cin >>fd;
cout <<"Enter weight in pounds:";
cin >>p;
double d=fd*12;
const double mk=0.0254;
double m=d*mk;
const double kgk=2.2;
double kg=p/kgk;
double htp=pow(m,2);
double bmi=kg/htp;
cout <<"bmi="<< kg/htp <<endl;
cin.get();
cin.get();
return 0;
}
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.03.2014, 22:50     Почему в ответе inf ? #4
Цитата Сообщение от tika Посмотреть сообщение
Кстати, каково ваше мнение о данном учебнике?
Хороший учебник.
Цитата Сообщение от tika Посмотреть сообщение
Компилил программу из учебника Праты "Язык программирования
С++ лекции и упражнения 2011"
Там есть такой код? Страницу укажите.
saden
183 / 167 / 41
Регистрация: 27.01.2013
Сообщений: 788
20.03.2014, 22:52     Почему в ответе inf ? #5
потому что fd не присвоено начального значения

Добавлено через 37 секунд
О! Вроде быстро писал...
recoder
130 / 130 / 28
Регистрация: 13.09.2013
Сообщений: 260
Записей в блоге: 2
20.03.2014, 22:53     Почему в ответе inf ? #6
alsav22, Это задание к главе на сколько я помню. Глава 3, 2 упражнение.
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.03.2014, 23:05     Почему в ответе inf ? #7
Цитата Сообщение от recoder Посмотреть сообщение
Это задание к главе на сколько я помню. Глава 3, 2 упражнение.
Я подумал, что там код такой написан.
Цитата Сообщение от tika Посмотреть сообщение
программу из учебника Праты "Язык программирования
С++ лекции и упражнения 2011"
tika
0 / 0 / 0
Регистрация: 26.10.2013
Сообщений: 16
21.03.2014, 20:40  [ТС]     Почему в ответе inf ? #8
recoder, огромное спасибо.(кстати,удивлен феноменальностью вашей памяти).Я все понял кроме одного момента.Зачем нужен двойной cinget?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2014, 20:46     Почему в ответе inf ?
Еще ссылки по теме:

В ответе нули C++
Почему выдает inf в выводе C++
Что означает -1#INF C++
C++ Как в if задать значение -inf
C++ Выводится 1.#INF вместо значения

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
recoder
130 / 130 / 28
Регистрация: 13.09.2013
Сообщений: 260
Записей в блоге: 2
21.03.2014, 20:46     Почему в ответе inf ? #9
По сути, здесь он нужен лишь для того что бы не закрывалась консоль вывода и мы могли увидеть результат. Можно заменить на system("pause"). Для этого нужно подключить #include <windows.h> и вместо этиx операторов:
C++
1
2
cin.get();
cin.get();
написать:
C++
1
system("pause");
Yandex
Объявления
21.03.2014, 20:46     Почему в ответе inf ?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru