x-kom hosting

BMI=nan

Paziuch
utworzono
utworzono

Hej, robiłem program do obliczania BMI ale wynik zawsze równa się "nan" i nie wiem czemu. Mógłby mi ktoś wyjaśnić?

#include <iostream>
#include <cmath>

using namespace std;

float stopy, cale;
float waga;
float wzrost=(12*stopy+cale)*0.0254;
float na_kg=waga/2.2;
double bmi=na_kg/pow(wzrost, 2);


int main()

{
   // cout.setf(ios_base::fixed, ios_base::floatfield);  
    cout<<"Podaj wzrost w stopach i calach"<<endl;
    cin>>stopy>>cale;
    cout<<"Podaj wage w funtach"<<endl;
    cin>>waga;

    cout<<"Twoje BMI wynosi: "<<bmi;



    return 0;
}

 

Matematyk0
komentarz
komentarz

Wszystko dlatego, że obliczenia (wzrost, waga, bmi) obliczasz przed ich wprowadzeniem - czyli program najpierw liczy wzrost (0), później na_kg (0) i przy bmi liczy 0/0, co jest operacją nieistniejącą w matematyce, a wszelkie programy zwracają wtedy wartość nan/NaN (Not a Number). Żeby to naprawić, przenieś

float wzrost=(12*stopy+cale)*0.0254;
float na_kg=waga/2.2;
double bmi=na_kg/pow(wzrost, 2);

za wprowadzanie danych. Wtedy program wyglądałby tak:

#include <iostream>
#include <cmath>

using namespace std;

float stopy, cale;
float waga;



int main()

{
   // cout.setf(ios_base::fixed, ios_base::floatfield);
    cout<<"Podaj wzrost w stopach i calach"<<endl;
    cin>>stopy>>cale;
    cout<<"Podaj wage w funtach"<<endl;
    cin>>waga;

    float wzrost=(12*stopy+cale)*0.0254;
    float na_kg=waga/2.2;
    double bmi=na_kg/pow(wzrost, 2);

    cout<<"Twoje BMI wynosi: "<<bmi;

    return 0;
}

 

  • Dobra wypowiedź 1
Paziuch
komentarz
komentarz

Rozumiem, dziękuję

Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!

Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Strona wykorzystuje pliki cookies w celu prawidłowego świadczenia usług i wygody użytkowników. Warunki przechowywania i dostępu do plików cookies możesz zmienić w ustawieniach przeglądarki.