If else



  • Hallo Leute,

    Könnt ihr mir sagen, was ich hier falsch mache?? DIe Fehlermeldung lautet :Ungültiges else ohne zugehöriges if.

    😋

    int main()
    {
    
    	char zahl1;
    	char zahl2;
    
    	cout << "Geben Sie eine Zahl ein: ";
    	cin >> zahl1;
    
    	cout << "Geben Sie noch eine Zahl ein: ";
    	cin >> zahl2;
    
    	char max;
    	max = zahl1;
    
    	if (zahl2 > max)
    
    	{
    		max = zahl2;
    
    	}
    	cout << "Die groesste Zahl ist: " << max << endl;
    
    	else if  (zahl1 = zahl2)
    	{
    		cout << "Die erste Zahl ist die gleiche wie die zweite zahl!";
    	}
    
    return 0;
    }
    

    Danke im voraus



  • zwischen einem if und dem else if dürfen keine anweisungen stehen, wenn du willst das dazwischen etwas erlaubt ist, musst du 2 if abfragen machen.
    abgesehen davon kann man deinen code noch etwas schöner und kompakter machen:

    int main()
    {
    	int zahl1,zahl2;
    	cout<<"Geben Sie bitte eine Zahl ein: ";
    	cin>>zahl1;
    
    	cout<<"Geben sie noch eine Zahl ein: ";
    	cin>>zahl2;
    	if(zahl2>zahl1)
    	{
    		cout<<"Die größte Zahl ist "<<zahl2<<endl;
    	}
    	else if(zahl1==zahl2)
    	{
    		cout<<"Die erste Zahl ist genauso groß wie die zweite Zahl!"<<endl;
    	}
    	return 0;
    }
    


  • int main()
    {
        char zahl1, zahl2, max;
    
        cout << "Geben Sie eine Zahl ein: ";
        cin >> zahl1;
    
        cout << "Geben Sie noch eine Zahl ein: ";
        cin >> zahl2;
    
        if (zahl1 == zahl2) //ACHTUNG == ist der Vergleichsoperator und = ist der Zuweisungsoperator
            cout << "Die erste Zahl ist die gleiche wie die zweite zahl!";
    	else
    	{
    		max = zahl1;
    		if (zahl2 > max)
    			max = zahl2;
    		cout << "Die groesste Zahl ist: " << max << endl;
    	}
    }
    


  • oder besser:

    int main()
    {
        int zahl1, zahl2;
    
        cout << "Geben Sie eine Zahl ein: ";
        cin >> zahl1;
    
        cout << "Geben Sie noch eine Zahl ein: ";
        cin >> zahl2;
    
        if (zahl1 == zahl2) //ACHTUNG == ist der Vergleichsoperator und = ist der Zuweisungsoperator
            cout << "Die erste Zahl ist die gleiche wie die zweite zahl!";
        else
            cout << "Die groesste Zahl ist: " << (zahl1 > zahl2 ? zahl1 : zahl2) << endl;
    }
    


  • hm, das geht doch noch enger.. mal kurz übertreiben

    int main()
    {
    	int zahl1,zahl2;
    	for(int i=0;i<2;i++){ 
    		cout<<"Bitte geben sie die "<<i+1<<". Zahl ein: ";
    		if(i==0)cin>>zahl1;
    		else cin>>zahl2; }
    	cout<<"Zahl 2 ist";
    	if(zahl2>zahl1) cout<<"die größte Zahl mit einem Wert von "<<zahl2<<endl;
    	else if(zahl1==zahl2) cout<<"genauso groß wie Zahl 1!"<<endl;
    	return 0;
    }
    

Anmelden zum Antworten