Zeiger nach dem Inhalt der Variabeln sortieren



  • Guten Abend,
    ich habe folgende Aufgabe vorliegen:
    "Legen Sie im Hauptprogramm drei int-Variablen a,b,c an. Legen Sie außerdem drei Zeiger auf diese Variabeln z1,z2,z3 an. Schreiben Sie nun eine Funktion, die diese Zeiger nach dem Inhalt der Variablen sortiert."

    Bis hierhin bin ich gekommen:

    #include<iostream>
    #include<iomanip>
    using namespace std;
    
    int sortieren(&a &b, &c) {
    	int array[a, b, c];
    	int temp,i,j;
    	for (i = 0; i < 2; i++) {
    		for (j = i; j < 2; j++) {
    			if (array[i] > array[j]) {
    				temp = array[i];
    				array[i] = array[j];
    				array[j] = temp;
    			}
    		}
    	}
    	return a, b, c;
    }
    
    void main() {
    	int a, b, c;
    	int*z1;
    	int*z2;
    	int*z3;
    	cout << "Bitte geben Sie die erste ganze Zahlen ein: " << endl;
    	cin >> a;
    	cout << "Nun die zweite Zahl: " << endl;
    	cin >> b;
    	cout << "Nun die dritte Zahl: " << endl;
    	cin >> c;
    	z1 = &a;
    	z2 = &b;
    	z3 = &c;
    	sortieren(*z1, *z2, *z3);
    	cout << z1 << ";" << z2 << ";" << z3;
    
    	getchar();
    	getchar();
    }
    

    Nun habe ich die Inhalt der Zeiger an meine Funktion sortieren übergeben, doch wie kann ich die sortieren. Klar könnte ich das unter Umständen mit if-else machen, aber ist unschön.
    Kann ich die übergegebenen Inhalte der Zeiger in ein Array einspeichern?
    Wie ich das versucht hatte:

    int array[a, b, c];
    

    ?
    Weil dann könnte ich es ja mit BubbleSort machen. Ich denke beim Bubble-Sort sind noch ein paar Fehler enthalten.

    Oder bin ich auf dem falschen Weg?
    Ich hoffe Ihr könnt mir helfen.

    P.S.:Bin Programmier-Neuling. Haben erst neu mit C++ angefangen, davor in C zu tun gehabt. Deswegen sieht es stark nach C aus.



  • sr4 schrieb:

    int array[a, b, c];
    
    return a, b, c;
    

    [...] davor in C zu tun gehabt [...]

    Bestimmt....



  • nimm doch den quicksort. quicksort ist (manchmal) schneller, als bubblesort. 😃

    aber warum legst du in der funktion referenzen auf zeiger an?



  • Wade1234 schrieb:

    nimm doch den quicksort. quicksort ist (manchmal) schneller, als bubblesort. 😃

    Für genau 3 Zahlen? Glaube ich nicht, der Algorithmus ist dafür viel zu kompliziert und lohnt sich erst bei größeren Mengen an Daten.

    Die Frage hier ist nur, ob das auf beliebig viele Zahlen erweitert werden soll oder nicht. Wenn ja, hast du natürlich recht, ansonsten sollte man es einfach halten.



  • nein eigentlich war das blödes rumgetrolle, tut mir wirklich leid. 😞

    eine mögliche lösung wäre jedenfalls, die kleinste variable herauszusuchen und mit der 1. variable zu tauschen und danach gegebenenfalls die zweite und die dritte variable zu tauschen.


Anmelden zum Antworten