Eingabe Position angeben



  • #include <iostream>
    using namespace std;
    
    int main()
    {
    	int e1, e2, e3, e4, e5, a1, a2, b1, c1;
    
    	cout << "Bitte geben Sie die 1. Zahl ein: ";
    	cin >> e1;
    
    	cout << "Bitte geben Sie die 2. Zahl ein: ";
    	cin >> e2;
    
    	cout << "Bitte geben Sie die 3. Zahl ein: ";
    	cin >> e3;
    
    	cout << "Bitte geben Sie die 4. Zahl ein: ";
    	cin >> e4;
    
    	cout << "Bitte geben Sie die 5. Zahl ein: ";
    	cin >> e5;
    
    		if (e1 < e2)
    			a1 = e1;
    		else
    			a1 = e2;
    
    		if (e3 < e4)
    			a2 = e3;
    		else
    			a2 = e4;
    
    		if (a1 < a2)
    			b1 = a1;
    		else
    			b1 = a2;
    
    		if (b1 < e5)
    			c1 = b1;
    		else
    			c1 = e5;
    
    		cout << "Die kleinste Zahl lautet: " << c1 << endl;
    
            if (e1 > e2)
    			a1 = e1;
    		else
    			a1 = e2;
    
    		if (e3 > e4)
    			a2 = e3;
    		else
    			a2 = e4;
    
    		if (a1 > a2)
    			b1 = a1;
    		else
    			b1 = a2;
    
    		if (b1 > e5)
    			c1 = b1;
    		else
    			c1 = e5;
    
    		cout << "Die goeßte Zahl lautet: " << c1 << endl;
    
    	system("pause");
    	return 0;
    }
    

    Ich soll jetzt auch noch die Eingabe Position der kleinsten bzw. der größten Zahl im cout angeben aber wie mache ich das???


  • Mod

    Wenn man Variablen x1, x2, x3, usw. oder ähnlich nennt, dann ist das ein sicheres Zeichen, dass man eigentlich ein Array haben möchte. Damit ergibt sich die Lösung auf deine Frage ganz von alleine und auch der ganze Code zum Suchen des Minimums und Maximums vereinfacht sich ganz wesentlich auf ein paar wenige Zeilen. Ich vermute sogar, dass gerade Arrays das eigentliche Ziel sind, das mit dieser Übungsaufgabe geübt werden soll. Kam vermutlich vor kurzem in Unterricht.

    Aber egal ob mit Arrays oder mit deiner Methode, die Antwort auf deine Frage ist in jedem Fall die gleiche: Du musst dir, wenn du einen Kandidaten für ein Minimum bzw. Maximum findest immer auch noch gleichzeitig dazu merken, von welcher Position es stammt. Also immer zwei Werte merken: Den eigentlichen Wert und die Position.



  • Also so in etwa hatte ich eine Idee doch beim umsetzten kommen nur falsche Positionen raus. Also ich bräuchte mehr als nur eine Erklärung vlt erstmal das Ergebnis dann eine Erklärung für das Ergebnis.


  • Mod

    Dann zeig doch mal den Code, bei dem das falsche Ergebnis heraus kommt.



  • Also ich hab das jetzt nur für den ersten teil gemacht als für den kleinsten wert :

    #include <iostream>
    using namespace std;
    
    int main()
    {
    	int e1, e2, e3, e4, e5, a1, a2, b1, c1, pos;
    
    	cout << "Bitte geben Sie die 1. Zahl ein: ";
    	cin >> e1; 
    
    	cout << "Bitte geben Sie die 2. Zahl ein: ";
    	cin >> e2; 
    
    	cout << "Bitte geben Sie die 3. Zahl ein: ";
    	cin >> e3; 
    
    	cout << "Bitte geben Sie die 4. Zahl ein: ";
    	cin >> e4; 
    
    	cout << "Bitte geben Sie die 5. Zahl ein: ";
    	cin >> e5; 
    
    	if (e1 < e2) {
    		a1 = e1;
    		pos = 1;
    	}
    		else
    			a1 = e2;
    			pos = 2;
    
    			if (e3 < e4) {
    				a2 = e3;
    				pos = 3;
    			}
    		else
    			a2 = e4;
    			pos = 4;
    
    			if (a1 < a2) {
    				b1 = a1;
    				pos = 2;
    			}
    		else
    			b1 = a2;
    			pos = 4;
    
    			if (b1 < e5) {
    				c1 = b1;
    				pos = 4;
    			}
    		else
    			c1 = e5;
    			pos = 5;
    
    		cout << "Die kleinste Zahl in der Position " << pos << " lautet: " << c1 << endl;
    
    		if (e1 > e2)
    			a1 = e1;
    		else
    			a1 = e2;
    
    		if (e3 > e4)
    			a2 = e3;
    		else
    			a2 = e4;
    
    		if (a1 > a2)
    			b1 = a1;
    		else
    			b1 = a2;
    
    		if (b1 > e5)
    			c1 = b1;
    		else
    			c1 = e5;
    
    		cout << "Die goesste Zahl lautet: " << c1 << endl;
    
    	system("pause");
    	return 0;
    }
    

  • Mod

    Whitespace ist in C++ kein syntaktisches Element. Du musst zusammengehörige Codeblöcke (hier den else-Code) mit geschweiften Klammern zusammenfassen, Einrückung alleine reicht dafür nicht.

    Das ist nicht einmal das erste Mal, dass ich heute genau den gleichen Fehler korrigieren muss. Ist Python plötzlich eine Vorbereitungssprache für C++ geworden?


Anmelden zum Antworten