Probleme mit If



  • Das Programm soll die groesste Zahl ausgeben, dass tut es ja auch, aber wie kriege ich das hin, dass das Programm die Position der groessten Zahl angibt??

    Schon im voraus danke...

    int main()
    {
    	double eingabe1;
    	double eingabe2;
    	double eingabe3;
    
    			cout << "Machen Sie ihre eingabe: ";
    			cin >> eingabe1;
    
    			cout << "Noch einmal bitte: ";
    			cin >> eingabe2;
    
    			cout << "Ein letzes Mal: ";
    			cin >> eingabe3;
    
    			double max ;
    			max = eingabe1;
    
    			double pos = 1 ;
    
    			if ( eingabe2 > max)
    			{
    				max = eingabe2;
    				pos = eingabe2;
    			}
    
    			if ( eingabe3 > max)
    			{
    				max = eingabe3;
    				pos = eingabe3;
    			}
    
    			cout << "Die groesste Eingabe ist: " << max << "an Postion: " << pos << endl;
    


  • z.B so

    if ( eingabe2 > max)
                {
                    max = eingabe2;
                    pos = 2;
                }
    

    Kurt



  • Und wie geb ich das an, wenn der User selber bestimmen kann, ob jetzt die kleinste oder die groesste zuerst angegeben werden kann???

    Danke

    Das sind die ersten Versuche. Kann ich eine Do- while Schleife zweimal machen???

    int main()
    {
    
    	double wert1;
    	double wert2;
    	double wert3;
    	double wert4;
    
    	char eingabe;
    
    	cout << "Geben Sie eine Zahl/Zeichen ein: ";
    	cin >> wert1;
    
    	cout << "Geben Sie noch eine Zahl/Zeichen ein: ";
    	cin >> wert2;
    
    	cout << "Geben Sie eine weitere Zahl/Zeichen ein: ";
    	cin >> wert3;
    
    	cout << "Ihre Eingabe bitte: ";
    	cin >> wert4;
    
    	cout << "Moechten Sie die Groesste oder die Kleinste Zahl wissen (g/k)?";
    	cin >> eingabe;
    
    	double max;
    	max = wert1;
    	do 
    	{
    		if ( wert2 > max)
    		{
    			max = wert2;
    		}
    
    		if ( wert3 > max)
    		{
    			max = wert3;
    		}
    
    		if ( wert4 > max)
    		{
    			max = wert4;
    		}
    
    		cout << "Die groesste Zahl ist: " << max << endl;
    
    		while (eingabe == 'g');
    
    	}
    
    	int min;
    	min = wert1;
    	do
    	{
    		if (wert2 < min)
    		{
    			min = wert2;
    		}
    
    		if (wert3 < min)
    		{
    			min = wert3;
    		}
    
    		if (wert4 < min)
    		{
    			min = wert4;
    		}
    
    		cout << "Die kleinste Eingabe ist: " << min <<endl;
    
    	}
    	while (eingabe = 'k'); 
    
    	return 0;
    }
    


  • Schleifen kannst du so viele und so oft machen wie du willst.
    In deinem Fall wäre aber ein

    if ( eingabe == 'g' ) {
      ...
    }
    else if if ( eingabe == 'k' ) {
      ...
    }
    

    wesentlich günstiger als eine Schleife.
    Kurt



  • Ist eigentlich char besser? Weil man ja auch Buchstaben eingeben soll??
    Findet ihr bei mir grobe Programmierfehler im allgemeinen??
    Was fehlt hier noch???

    Vielen Dank

    int main()
    {
    
    	char wert1;
    	char wert2;
    	char wert3;
    	char wert4;
    
    	char eingabe;
    
    	cout << "Geben Sie eine Zahl/Zeichen ein: ";
    	cin >> wert1;
    
    	cout << "Geben Sie noch eine Zahl/Zeichen ein: ";
    	cin >> wert2;
    
    	cout << "Geben Sie eine weitere Zahl/Zeichen ein: ";
    	cin >> wert3;
    
    	cout << "Ihre Eingabe bitte: ";
    	cin >> wert4;
    
    	cout << "Moechten Sie die Groesste oder die Kleinste Zahl wissen (g/k)?";
    	cin >> eingabe;
    
    	char max;
    	max = wert1;
    
    	if (eingabe == 'g')
    	{
    		if ( wert2 > max)
    		{
    			max = wert2;
    		}
    
    		if ( wert3 > max)
    		{
    			max = wert3;
    		}
    
    		if ( wert4 > max)
    		{
    			max = wert4;
    		}
    
    		cout << "Die groesste Zahl ist: " << max << endl;
    	}
    
    	char min;
    	min = wert1;
    
    	else if if (eingabe == 'k')
    	{
    		if ( wert2 < min )
    		{
    			min = wert2;
    		}
    
    		if ( wert3 < min)
    		{
    			min = wert3;
    		}
    
    		if ( wert4 < min)
    		{
    			min = wert4;
    		}
    
    		cout << "Die kleinste Zahl ist: " << min << endl;
    	}
    


  • so kanns nicht gehen.

    char min;
        min = wert1;
    
        else if if (eingabe == 'k')
    

    besser so

    else if (eingabe == 'k') {
           char min;
           min = wert1;
           ...
    

    Kurt

    EDIT: Sehe gerade das if if ist auf meinen Mist gewachsen. War ein Typo.



  • Jetzt klappts, vielen Dank für deine Hilfe...

    👍


Anmelden zum Antworten