kalkulator bmi,problem

0

Na tą chwilę działa tylko kalkulator BMI ale to właśnie z nim mam problem,po wpisaniu (wzrostu w postaci 1.70) wzrostu i wagi,zamiast wybrac cos z if,else to konczy prace.
A jesli zamiast . w wzroscie dam , to pisze ze moje bmi wynosi 0 i wywala 1 opcje czyli bmi<16,nie wiem czemu.
(Jest to mój pierwszy taki trochę większy programik i traktuje to jako ćwiczenie)

#include <iostream>
using namespace std;
int main()
   { 
     //DOSTEPNE WYBORY MENU
    cout<<"  PROGRAM CHUDNIJ Z NAMI GRUBASAMI";
	
	cout<<"\n\n    1 Obliczanie Kalori";
    cout<<"\n\n    2 BMI";
    cout<<"\n\n    3 Cwiczenia";
    cout<<"\n\n    4 Dieta";
    cout<<"\n\n    5 Przyrost Masy Miesniowej\n";
    
    int wybor;
    cin>>wybor;
    
    cout<<"\nWybrales opcje nr. "<<wybor;
    
    
    
    
    
    
    //OPCJE MENU
    
	switch(wybor)
	
	
	  {
       case 1:
        break;      
       
       case 2:
       	//KALKULATOR BMI
    	  cout<<"\n\n   #KALKULATOR BMI#\n   Oblicz idealna wage dla ciebie!";
    	  cout<<"\n\n   Podaj Wzrost w metrach np.1.74: ";
		 
          double wzrostbmi;
    	  cin>>wzrostbmi;
    	 
    	  cout<<"\n\n   Podaj swoja wage w kilogramach: ";
    	 
    	  double wagabmi;
    	  cin>>wagabmi;
    	  
    	  
    	  //OBLCZANIE BMI
    	  
		  double bmi;
    	  bmi=wzrostbmi*wzrostbmi;
    	  bmi=wagabmi/bmi;
    	  

    	    //INFORMACJE W ZALEZNOSCI OD OBLICZONEGO BMI
    	    
    	    if(bmi<16.0)
    	    {
              cout<<"Twoje BMI wynosi "<<bmi<<"\n   BMI na tym poziomie wskzuje na wyglodzenie\n";
              cout<<"     Tabela BMI\n\n"
              "   16.0  wyglodzenie\n"
              "   16.0 do 17.0  (wychudzenie,spowodowane czesto przez ciezka chorobe)\n"
              "   17,0 do 18,5  (niedowaga)\n"
              "   18,5 do 25,0  (wartosc prawidłowa)\n"
              "   25,0 do 30,0  (nadwage)\n"
              "   30,0 do 35,0  (I stopien otylosci)\n"
              "   35,0 do 40,0  (II stopien otylosci (otylosc kliniczna)\n"
              "   40,0  (III stopien otylosci,otylosc skrajna)\n";
            }
              
		else if(17.0>bmi>16.0)
              {
              cout<<"Twoje BMI wynosi "<<bmi<<"\n   BMI na tym poziomie wskazuje na wychudzenie \n";
              cout<<"     Tabela BMI\n\n"
              "   16.0  wyglodzenie\n"
              "   16.0 do 17.0  (wychudzenie,spowodowane czesto przez ciezka chorobe)\n"
              "   17,0 do 18,5  (niedowaga)\n"
              "   18,5 do 25,0  (wartosc prawidłowa)\n"
              "   25,0 do 30,0  (nadwage)\n"
              "   30,0 do 35,0  (I stopien otylosci)\n"
              "   35,0 do 40,0  (II stopien otylosci (otylosc kliniczna)\n"
              "   40,0  (III stopien otylosci,otylosc skrajna)\n";
              }
        else if(18.5>bmi>17.0)
              {	 
              cout<<"Twoje BMI wynosi "<<bmi<<"\n   BMI na tym poziomie wskazuje na niedowage\n";
              cout<<"     Tabela BMI\n\n"
              "   16.0  wyglodzenie\n"
              "   16.0 do 17.0  (wychudzenie,spowodowane czesto przez ciezka chorobe)\n"
              "   17,0 do 18,5  (niedowaga)\n"
              "   18,5 do 25,0  (wartosc prawidłowa)\n"
              "   25,0 do 30,0  (nadwage)\n"
              "   30,0 do 35,0  (I stopien otylosci)\n"
              "   35,0 do 40,0  (II stopien otylosci (otylosc kliniczna)\n"
              "   40,0  (III stopien otylosci,otylosc skrajna)\n";
              }
        else if(25.0>bmi>18.5)
              {	 
              cout<<"Twoje BMI wynosi "<<bmi<<"\n   BMI na tym poziomie wskazuje na wage prawidlowa\n";
              cout<<"     Tabela BMI\n\n"
              "   16.0  wyglodzenie\n"
              "   16.0 do 17.0  (wychudzenie,spowodowane czesto przez ciezka chorobe)\n"
              "   17,0 do 18,5  (niedowaga)\n"
              "   18,5 do 25,0  (wartosc prawidłowa)\n"
              "   25,0 do 30,0  (nadwage)\n"
              "   30,0 do 35,0  (I stopien otylosci)\n"
              "   35,0 do 40,0  (II stopien otylosci (otylosc kliniczna)\n"
              "   40,0  (III stopien otylosci,otylosc skrajna)\n";
              }
        else if(30.0>bmi>35.0)
              {	 
              cout<<"Twoje BMI wynosi "<<bmi<<"\n   BMI na tym poziomie wskazuje na I stopień otylosci\n";
              cout<<"     Tabela BMI\n\n"
              "   16.0  wyglodzenie\n"
              "   16.0 do 17.0  (wychudzenie,spowodowane czesto przez ciezka chorobe)\n"
              "   17,0 do 18,5  (niedowaga)\n"
              "   18,5 do 25,0  (wartosc prawidłowa)\n"
              "   25,0 do 30,0  (nadwage)\n"
              "   30,0 do 35,0  (I stopien otylosci)\n"
              "   35,0 do 40,0  (II stopien otylosci (otylosc kliniczna)\n"
              "   40,0  (III stopien otylosci,otylosc skrajna)\n";
              }
        else if(35.0>bmi>40.0)
              {	 
              cout<<"Twoje BMI wynosi "<<bmi<<"\n   BMI na tym poziomie wskazuje na II stopień otylosci\n";
              cout<<"     Tabela BMI\n\n"
              "   16.0  wyglodzenie\n"
              "   16.0 do 17.0  (wychudzenie,spowodowane czesto przez ciezka chorobe)\n"
              "   17,0 do 18,5  (niedowaga)\n"
              "   18,5 do 25,0  (wartosc prawidłowa)\n"
              "   25,0 do 30,0  (nadwage)\n"
              "   30,0 do 35,0  (I stopien otylosci)\n"
              "   35,0 do 40,0  (II stopien otylosci (otylosc kliniczna)\n"
              "   40,0  (III stopien otylosci,otylosc skrajna)\n";
              }
        else if(40.0<=bmi)
              {	 
              cout<<"Twoje BMI wynosi "<<bmi<<"\n   BMI na tym poziomie wskazuje na III stopień otylosci (otylosc skrajna)\n";
              cout<<"     Tabela BMI\n\n"
              "   16.0  wyglodzenie\n"
              "   16.0 do 17.0  (wychudzenie,spowodowane czesto przez ciezka chorobe)\n"
              "   17,0 do 18,5  (niedowaga)\n"
              "   18,5 do 25,0  (wartosc prawidłowa)\n"
              "   25,0 do 30,0  (nadwage)\n"
              "   30,0 do 35,0  (I stopien otylosci)\n"
              "   35,0 do 40,0  (II stopien otylosci (otylosc kliniczna)\n"
              "   40,0  (III stopien otylosci,otylosc skrajna)\n";
              }

                        
    	break;
		  
       case 3:
        break;
        
       case 4:
        break;
        
       case 5:
        break;
        
       default:
     	cout<<"Wybierz numer od 1 do 5,do kazdej opcji jest przypisany numer.";
    	break;
    	

           }
}
0

Nie dość, że założyłeś kolejny temat dotyczący dokładnie tego samego programu, to jeszcze w tamtym wątku uzyskałeś kompletną odpowiedź i ją zaakceptowałeś jako rozwiązanie; Skoro dalej nie potrafisz rozwiązać problemu to dopisuj posty w jednym wątku, a nie twórz kolejnych; Następnym razem wątek trafi do kosza.

0

DRY

17.0>bmi>16.0

nie możesz tak pisać
trzeba rozpisać na:

17.0 > bmi && bmi > 16.0

tamten zapis najpierw sprawdzi czy 17.0 jest większe od bmi, uzyska w ten sposób wartość logiczną prawda lub fałsz która następnie zostanie zrzutowana na liczbę 1 lub 0 celem porównania z drugą liczbą (co nie ma sensu)

poza tym brakuje Ci warunku dla bmi między 25 a 30

BTW - sprawdziłem sobie BMI i okazuje się że brakuje mi pół punkta do nadwagi :O muszę się pilnować

1 użytkowników online, w tym zalogowanych: 0, gości: 1