Programm soll Zahl erraten



  • Hallo 🙂

    Finde einfach meinen Fehler nicht 😞
    Wäre cool wenn mal jmd drüberschauen könnte ... klappt iwie net so wie ich will

    #include <iostream>
    using namespace std;
    
    int main(){
    
       int min=0,max=20,tip=(max-min)/2;
       int frage1,wahl,fall=0;
    
       cout<<"Denken Sie sich eine Zahl zwischen 0 und 20 aus"<<endl;
       cout<<endl;
       cout<<"Ist es die "<<tip<<" ? (Ja = 1 ; Nein = 0) ";
       cin>>frage1;
    
       if(frage1==1){cout<<"\nDie ausgedachte Zahl lautet: "<<tip<<"\n"<<endl;}
    
       else{
    
       while(fall==0){
    
    	   cout<<"\nIst die ausgedachte Zahl kleiner oder groesser als "<<tip<<" ?\n"<<endl;
    	   cout<<"Wenn die Zahl kleiner ist, druecken sie die 1; ansonsten die 2 ";
    	   cin>>wahl;
    
    	   switch (wahl){
    
    	   case 1: max=tip;
    		       tip = (tip/2);
    			   cout<<"Ist es die "<<tip<<" ? (Ja = 1 ; Nein = 0) ";
    			   cin>>fall;
    			   break;
    
    	   case 2: min=tip; 
    			   tip = ((max-tip)/2)+tip;
    			   cout<<"Ist es die "<<tip<<" ? (Ja = 1 ; Nein = 0) ";
    			   cin>>fall;
    			   break;
    
    	   default: cout<<"Bitte halten Sie sich an die Anweisungen!"<<endl;
    			   } 
                }
    
    		cout<<"Ihre ausgedachte Zahl ist die "<<tip<<endl;
    
    		 }
      return 0;
    }
    


  • ok, hab drübergeguckt.



  • Ich habe auch drübergeschaut. Das programm funktioniert andwandfrei. Habe den Quelcode eingefügt und gestartet, funzt.
    Woran liegt den das Problem?


  • Mod

    IMHO ist dieser Algorithmus nur geeignet Zahlen >=0 und <=19 zu ermitteln.
    Er ist typisch C/C++ incl. lower bound, excl. upper bound.

    Es müsste IMHO heißen:

    cout<<"Denken Sie sich eine Zahl zwischen 0 und 19 aus"<<endl;
    

Anmelden zum Antworten