Wyliczanie BMI, liczba zmiennoprzecinkowa

Wyliczanie BMI, liczba zmiennoprzecinkowa
PrzemolPrzemol
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 225
0

Kod programu:

Kopiuj
#include <iostream>  

int main()  
 {  
      using namespace std;  
   
      int wzrost;
	  cout << "Podaj swoj wzrost: " << endl;
	  cin >> wzrost;
	  
	  int waga;
	  cout << "Podaj swoja wage: ";
	  cin >> waga;
	  
	  double wyliczaniewzrostu;
	  wyliczaniewzrostu = wzrost * wzrost;
	  
	  double BMI;
	  BMI = waga / wyliczaniewzrostu;
	  cout << "Twoje BMI to: " << BMI << endl;
	  
	  return 0;
}
      

Przykładowa wartość: Wzrost 165 cm, waga 60kg powinna zwrócić wartość: 22.03. U mnie w programie wygląda to tak: 0.00220386. Próbowałem już zmienić typ double w BMI na int / float ale skutkowało to wartością 0 przy powyższych parametrach. W środku powyższego (pogrubionego) wyniku znajduje się prawidłowa wartość ...2203.... jak doprowadzić to do porządku?

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
4

Boś nie zwrócił uwagi na jednostki.
Ten wzór na BMI oczekuje wzrostu w metrach.

Btw, bardzo sobie ten swój program skomplikowałeś:

Kopiuj
#include <iostream>  
 
int main() {  
	float wzrost, waga;

	std::cout << "Podaj swoj wzrost: " << std::endl;
	std::cin >> wzrost;

	std::cout << "Podaj swoja wage: " << std::endl;
	std::cin >> waga;

	std::cout << "Twoje BMI to: " << BMI(wzrost, waga) << std::endl;

	return 0;
}

double BMI(float wzost, float waga) {
	return waga / (wzrost * wzrost);
}
_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
4
Kopiuj
Wzrost ma być w metrach, czyli:

#include <iostream>  
 
int main()  
 {  
      using namespace std;  
 
      cout << "Podaj swoj wzrost: " << endl;
      int wzrost;
      cin >> wzrost;
 
      cout << "Podaj swoja wage: ";
      int waga;
      cin >> waga;
 
      cout << "Twoje BMI to: " << (10000.0* waga / (wzrost * wzrost)) << endl;
      return 0;
}
stryku
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 607
0

Wyliczając BMI wzrost podaje się w metrach, nie cm

Kopiuj
wyliczaniewzrostu = static_cast<double>( wzrost * wzrost ) / 10000.0;

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.