Programik,potrzebna pomoc

0

Postanowiłem ogarnąć sobie ćwiczenie na jakimś tam trochę bardziej rozbudowanym programie (przynajmniej dla mnie)
i mam problem bo nie wiem czemu jest błąd,kompilator nie daje zbyt sensownych odpowiedzi,myślę że przy powolnym rozwoju programu a raczej programiku,będę potrzebował jeszcze wjęcęj waszej pomocy także będą częste updaty.

#include <iostream>
using namespace std;
int main()
{
	cout<<"  PROGRAM CHUDNIJ Z NAMI GRUBASAMI";
	//MENU
	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;
    
    //WYBORY MENU
	switch(wybor)
	{
    case 1:
    
    case 2:
    	 cout<<"\n\n   #KALKULATOR BMI#\n   Oblicz idealna wage dla ciebie!";
    	 cout<<"\n\n   Podaj Wzrost w centymetrach(np.174): ";
		 
         int wzrostbmi;
    	 cin>>wzrostbmi;
    	 
    	 cout<<"\n\n   Podaj swoja wage w kilogramach: ";
    	 
    	 int wagabmi;
    	 cin>>wagabmi;
    	 //CZARY MARY MOJ GENIALNY POMYSL!
    	 wagabmi=wagabmi*10;
    	 
    	 int bmi=wagabmi/wzrostbmi;
         bmi=bmi*bmi;
    	 
    	 
    	   switch(bmi)
           {
           	case 18:
           	bmi=bmi/10;
           	cout<<"Twoje BMI wynosi: "<<bmi;
           	cout<<"  Masz Niedowage\n\n";
           	

           cout<<"do 18.5 niedowaga"
           "18.5 - 24.9 w normie"
           "25.0 - 29.9 nadwaga"
           "30.0 - 34.9 otyłość"
           "35.0 - 39.9 duża otyłość"
           "40 lub więcej ekstremalna otyłość";
           	break;
           	case 24:
           	cout<<"  Waga w Normie\n\n";
           	

           cout<<"do 18.5 niedowaga"
           "18.5 - 24.9 w normie"
           "25.0 - 29.9 nadwaga"
           "30.0 - 34.9 otyłość"
           "35.0 - 39.9 duża otyłość"
           "40 lub więcej ekstremalna otyłość";
           		break;
    	
           }
    	 
    
    case 3:
    int gk
    case 4:
    int g
    case ui:
    int a
    default:
    	cout<<"Wybierz numer od 1 do 5,do kazdej opcji jest przypisany numer.";
    	break;
    }
}

Miałem taki piękny pomysł,ale ten switch mnie denerwuje,musiałem iść na ustępstwo z bmi,(nie mogłem pisać z przecinkiem i musiałem użyć int) ok jakoś to ogarnołem ale już nie ogarnę tego że nie mogę dać w case bmi<18 i szczerze mówiąc nie wiem jak temu zaradzić ;(
Mógłbym ogarnąć if else ale ten switch wydawał mi się taki idealny ;(

(Gdzieniegdzie mogą być błędy ale głównym moim problemem jest brak możliwości porównania)

0

to jakaś masakra. Serio. Napisz to od nowa - zaplanuj na kartce albo coś.

1
  1. Switch stosuje się tylko do działań na liczbach całkowitych, czyli tak jak zastosowałeś tutaj do wyboru menu. Ale nigdy do działania na przedziałach (swoją drogą w obliczeniu bmi nie powinno stosować się typu int, ponieważ zawsze zaokrągli Ci w dół, więc podawanie bmi po przecinku nie ma tu sensu). Do działania na przedziałach używa się if-else.
  2. Program daje w wyniku głupoty, bo switch działa Ci tylko dla liczb 18 i 24.
  3. Lepiej poczytaj o funkcjach, bo zaraz nie będziesz w stanie ogarnąć tego kodu. Jak podzielisz to na niewielkie funkcje od razu będziesz widział co dokładnie nie działa.
  4. Lepiej formatuj kod, bo analizowanie tego jest straszne. Ciężko się w ogóle połapać co jest do czego.

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