Programm geht nur bis zu einem bestimmten Wert



  • Hey Leute
    Ich wollte ein sehr simples Programm entwickeln um zu üben. Allerdings geht das Programm nur bis zu einem bestimmten Wert.
    Hier der Code:

    #include <iostream>
    using namespace std;
    
    int main ()
    {
    	float fGewicht;
        float fKörpergröße, fKQuadrat;      //KQuadrat = Körpergröße Quadrat
    	float fBMI;
    	float fAuswahlGeschlecht;
    
    	cout << "Um deinen Body-Mass-Index herauszufinden musst du deine Koerpergroesse herausfinden und dich wiegen." << endl;
    
    	cout << "Sind sie ein Mann(1) oder eine Frau(2)?" << endl;
    	cin >> fAuswahlGeschlecht;
    
    	cout << "Ihre Koerpergroesse: " <<endl;
    	cin >> fKörpergröße;
    
    	cout << "Ihr Gewicht (gerundet auf kg): " << endl;
    	cin >> fGewicht;
    
    	fKQuadrat = fKörpergröße * fKörpergröße;
    
        fBMI = fGewicht/fKQuadrat;
    
    	if (fAuswahlGeschlecht = 1)
    	{
    		if (fBMI < 20)
    		{
    			cout << "Sie sind untergewichtig"<<endl;
    			system ("pause");
    			return 0;
    		}
    		if (fBMI = 21, 22, 23, 24, 25)
    		{
    			cout << "Sie sind Normalgewichtig" << endl;
    			system ("pause");
    			return 0;
    		}
    		if (fBMI = 26, 27, 28, 29 ,30)
    		{
    			cout << "Sie sind etwas uebergewichtig" << endl;
    			system ("pause");
    			return 0;
    		}
    		if (fBMI = 31, 32, 33, 34, 35, 36, 37, 38, 39 ,40)
    		{
    			cout << "Sie sind uebergewichtig" << endl;
    			system ("pause");
    			return 0;
    		}
    		if (fBMI > 40)
    		{
    			cout << "Sie sind stark uebergewichtig" << endl;
    			system ("pause");
    			return 0;
    		}
    	}
    
    		if (fAuswahlGeschlecht = 2)
    		{
    		if (fBMI < 19)
    		{
    			cout << "Sie sind untergewichtig"<<endl;
    			system ("pause");
    			return 0;
    		}
    		if (fBMI == 19, 20, 21, 22, 23, 24)
    		{
    			cout << "Sie sind Normalgewichtig" << endl;
    			system ("pause");
    			return 0;
    		}
    		if (fBMI == 25, 26, 27, 28, 29 ,30)
    		{
    			cout << "Sie sind etwas uebergewichtig" << endl;
    			system ("pause");
    			return 0;
    		}
    		if (fBMI == 31, 32, 33, 34, 35, 36, 37, 38, 39 ,40)
    		{
    			cout << "Sie sind uebergewichtig" << endl;
    			system ("pause");
    			return 0;
    		}
    		if (fBMI > 40)
    		{
    			cout << "Sie sind stark uebergewichtig" << endl;
    			system ("pause");
    			return 0;
    		}
    
    		}
    }
    

    [code]

    Jetzt habe ich das Problem dass das Programm noch erkennt wenn man untergewichtig ist, allerdings zeigt es danach immer an das man Normalgewichtig ist.

    MfG cybogg13

    Edit: Ich bin noch ein Anfänger also wäre ich sehr dankbar für weitere Tipps 😉



  • Es heißt if(fBMI == 21 || fBMI == 22 || fBMI == 23 || fBMI == 24 || fBMI == 25) .
    Außerdem würde ich das f am Variablennamen wegmachen (siehe Ungarische Notation) und ein float kann auch zwischen den Ganzzahlen liegen. Also if(fBMI > 20 && fBMI < 25) .



  • Ok danke. Das mit dem Komma wollte ich nur versuchen da ich in letzter Zeit sehr viel versuche. Und das f war vor jeder Variable da ich eine Fehlermeldung missverstanden habe und ich alles zu der float-Variable umgeändert habe. Als ich gemerkt habe dass das nichts verändert habe ich einfach die Variablen verändert weil ich mir dachte das macht wenn ich letztendlich eine int Variable habe keinen Unterschied.
    Also nochmal Danke 😉



  • << endl; brauchst du nicht. Ersetze es durch "\n" und ab Zeile 38 lass es ganz weg.
    In den Zeilen 34 und 68 muss es heißen:

    if (fAuswahlGeschlecht == 1)
    

Anmelden zum Antworten