2016-03-03 2 views
0

Как вы вычисляете BMI = mass (lb) x 703/(height (in)) в квадрате на C++.Как рассчитать BMI в C++ с расчетами ft и дюймов

BMI ответ был 33,4695

I entered: 
cout << "weight(lbs)"; 
cin >> lbs; 
cout << "height"; 
cin >> height >> in; 

BMI = ((lbs) * 703)/pow(height(in)), 2); 

У меня и ошибки: не экземпляр перегруженной функции «пау» не соответствует списку аргументов утверждают тип: (< ОШИБОК типа>).

Я включил файл <cmath> и высота определена как double.

+1

Если вы уточните вопрос, как «как преобразовать сантиметры в дюймы», это станет проще. Всегда решайте причину, а не симптом :) –

+0

Причиной здесь является недостаток понимания физических величин и единиц. И это не помогает общим языкам программирования. «Высота» действительно является физической величиной. Определенная высота может быть выражена как число и единица, например «70 дюймов» или более формальные «1,75 метра». Как показывает пример, одна высота может иметь два связанных с ней номера, поскольку единицы отличаются друг от друга. Таким образом, обычное соглашение состоит в том, что вы делаете явный выбор для устройства (как это делается для lbs здесь), а затем игнорируете устройство. – MSalters

ответ

2

Давайте начнем говорить, что вам вообще не нужно называть pow(), но в вашем случае вы не выполняете привязки. Это должно быть

pow(height, 2) 

Предполагая, что высота является числовой переменной. Неясно, хотите ли вы каким-либо образом включить в свои переменные единицы измерений физических величин (дюймов или фунта). Это более сложная задача, но между тем вы можете использовать это:

float weight = 0, height = 0; 
cout << "Enter weight(lbs): "; 
cin >> weight; 
cout << "Enter height(inches):"; 
cin >> height; 

float BMI = weight * 703.0/(height * height); 
cout << "BMI = " << BMI << '\n'; 
Смежные вопросы