В настоящее время я программирую базовый калькулятор BMI на C++, используя классы и т. Д. У меня закодированы основы, но когда я запускаю программу и вводю свои параметры, она возвращает странное значение (-9.25596 е + 061)Консольное приложение возвращает странное значение
Это моя главная:
int main()
{
h_bmi bmi;
imperial calcImperial;
metric calcMetric;
char selection = '0';
cout << "Hello! Welcome to the BMI calculator! This calculator will ask you a few \nquestions for it to calculate your BMI!" << endl;
cout << "\n \nWould you like to use metric (Kilograms and meters) or would you like to use \nimperial (pounds and inches) measurements? (m/i)" << endl;
cin >> selection;
if (selection == 'm' || 'M')
{
cout << "Enter your weight in kilograms: " << endl;
cin >> calcMetric.weight;
cout << "Enter your height in meters: " << endl;
cin >> calcMetric.height;
cout << calcMetric.bmi << endl;
}
else if (selection == 'i' || 'I')
{
cout << "Enter your weight in pounds: " << endl;
cin >> calcImperial.weight;
cout << "Enter your height in inches: " << endl;
cin >> calcImperial.height;
cout << calcImperial.bmi << endl;
}
else
{
cout << "Please enter only 'm' for Metric, or 'i' for imperial!" << endl;
}
system("PAUSE");
return 0;
}
Это мой h_bmi.h
#pragma once
class h_bmi
{
public:
double height, weight, bmi;
h_bmi(){};
~h_bmi(){};
};
и мой imperial.h (я включил это в моем файле CPP)
#include "h_bmi.h"
#include <cmath>
#pragma once
class imperial : public h_bmi
{
public:
double calcBMI(double height, double weight)
{
bmi = (weight * 703)/(pow(height, 2));
return bmi;
};
};
metric.h:
#include "h_bmi.h"
#include <cmath>
#pragma once
class metric : public h_bmi
{
public:
double calcBMI(double height, double weight)
{
bmi = weight/(pow(height, 2));
return bmi;
};
};
Так как я уже сказал, когда я запускаю программу, я набираю в "м", затем "80", а затем "1.8", но couts это значение. Если кто-нибудь может сообщить мне об ошибке и указать мне в правильном направлении или, возможно, найти исправление, было бы весьма полезно.
Что об изменении ', если (выбор == 'т' || 'М')' с 'если (выбор == 'т' || выбор ==«M ') 'и на самом деле вызов' calcBMI() '? –
я назвал calcBMI так: 'соиЬ << calcMetric.calcBMI (calcMetric.weight, calcMetric.height) << епсИ;' , но она по-прежнему возвращает значение странное (на этот раз это 0.00028125) – davidpox