problem mit einer schleife



  • Ich bin Anfänger, deßwegen bitte ich zu entschuldigen, wenn ich einen simplen Fehler gemacht habe.
    Ich bin gerade dabei c++ zu lernen und habe dazu ein sehr kleines Programm geschrieben, welches bis 1000 zählen soll. Der Nutzer soll dabei den Startwert eingeben können. Allerdings funktioniert es nicht. Kann mir jemand sagen, was ich ändern muss und vor allem warum? Vielen Dank

    #include <cstdlib>
    #include <iostream>

    using namespace std;

    int main(int argc, char *argv[])
    {int Hallo;
    int kontrolle=0;
    cout<< "Bitte geben sie eine Zahl zwischen 0 und 900 ein"<<endl;
    while (kontrolle=0)
    {cin >> Hallo;
    if (Hallo>0 && Hallo<50000)
    kontrolle=1;
    else cout<<"falsche eingabe, bitte erneut versuchen" <<endl;

    }
    while (Hallo<1000)
    {Hallo=Hallo+1;
    cout<<Hallo;
    }
    system("PAUSE");
    return EXIT_SUCCESS;
    }



  • Das nächste mal bitte cpp Tags verwenden und wenn es geht den Code formatieren.

    In deiner ersten while Schleife weist du kontrolle immer eine 0 zu. Die wird also nie ausgeführt, weil 0 = false ist. Du meintest wahrscheinlich

    while ( kontrolle == 0 )
    

    Es macht einen Unterschied ob du ein oder zwei = Zeichen schreibst.

    = Zuweisung
    == Vergleich

    Ich hab dein kleines Programm mal etwas umgeschrieben.

    #include <iostream>
    using namespace std;
    
    int main() {
    	int nummer = 0;
    	cout << "Bitte geben sie eine Zahl zwischen 0 und 900 ein: ";
    
    	while ( nummer == 0 )
    	{
    		cin >> nummer;
    
    		if ( nummer <= 0 || nummer >= 900 )
    		{
    			nummer = 0;
    			cout << "falsche eingabe, bitte erneut versuchen : ";
    		}
    	}
    
    	cout << endl;
    
    	while ( nummer <= 1000 )
    		cout << nummer++ << " ";
    
    	cin.sync();
    	cin.get();
    
    	return 0;
    }
    

Anmelden zum Antworten