1.Sem.Frage: Zahlen sortieren in C / Quellcode



  • Hallo zusammen,

    bin im ersten Semester und hatte mit Informatik nicht wirklich was zu tun - bisher, hoffe ihr nehmt da ein wenig Rücksicht ; )

    Die Aufgabe lautet, das drei einzugebende Zahlen in aufsteigender Reihenfolge sortiert werden müssen.

    Bin mir sicher das mein Programmcode unten richtig ist aber irgendwie habe ich da noch einen Dreher drin und komme mit den "Meckermeldungen" des Compilers nicht klar.

    Bitte postet mir keine Lösung, mir machts ja Spass.
    Aber über Hinweise jeder Art wäre ich echt dankbar.

    Vielen Dank

    JTom

    -----------------------------------------------------------------------------

    #include<stdio.h>
    
    void main ()
    
    {
    
    int A,B,C;
    int Z1,Z2,Z3;
    
    scanf("%i %i %i",&A,&B,C&);
    
    if(A<B)
    {
    	if(A<C)
    	{
    		if(B<C)
    		{	Z1=A;
                Z2=B;
                Z3=C;
    		}
    		else
    		{
    			Z1=A;
                Z2=C;
                Z3=B;
    		}
    	}
    	{
    		else
    			{
    			Z1=C;
                Z2=A;
                Z3=B;
    		}
    	}
    
    	else
    	{
    		if(B<C)
    	      {
    		        if(A<C)
    
    				{Z1=B;
    				 Z2=A;
    				 Z3=C;}
    
    				else
    				{Z1=B;
    				 Z2=C;
    				 Z3=A;}
    		   }
    	}
    else
    {Z1=B;
    Z2=C;
    Z3=A;}
    
    	}
    
    printf("A=%i B=%i C=%i\n",A,B,C);
    printf("Z1=%i Z2=%i Z3=%i\n",Z1,Z2,Z3);
    
    }
    

    <edit=kingruedi>bitte beachte beim nächsten posten sfds </edit>



  • Der Ansatz ist leider falsch, so macht man das nicht. Was ist, wenn es mehr Zahlen werden? Willst du dann noch mehr if-Abfragen basteln?

    Überleg dir mal was anderes. Nimm dir 3 Zettel, schreib auf jeden eine Zahl und überleg dir, wie du die sortieren könntest (mit welcher Strategie).



  • Wie wäre es mit Sortieralgorithmen? Quicksort?



  • so etwas macht man doch mit Schleifen und nicht ewigen if-Abfragen. Siehe aber am besten mal unter Sortieralgorithmen

    Übrigens ist void main falsch, das sollte int main sein.

    Ansonsten solltest du bitte deine Fehlermeldungen besser beschreiben. (Also Angabe von Fehlermeldungen des Compilers, Angabe der Fehlerhaften Ausgabe etc.)



  • Du könntest natürlich auch man: qsort verwenden, allerdings ist es fraglich, ob die Übung dann überhaupt noch Sinn macht. 😕



  • Hmmm... gibt es zu den "Meckermeldungen des Copilers" keine Hilfe? "Scharfes hingucken" an der Stelle, wo der Compiler meckert?

    Aus einer Fehlermeldung zu schließen, was man falsch gemacht hat, gehört schließlich dazu.

    Hier einen Sortieralgorithmus anzusetzen ist mit Kanonen auf Spatzen, da lernt man auch nicht viel mehr als einen Sortieralgorithmus zu nutzen.

    Aber wie wäre es denn damit?

    Schritt 1 - kannst du das problem für zwei Zahlen lösen?
    Schritt 2 - kannst du die Lösung auf drei Zahlen ausweiten? Wie kannst du dabei effektiv dedn unter 1 geschriebenen Code nutzen=
    Schritt 3 - 4 Zahlen?
    Schritt 4 - N Zahlen?


Anmelden zum Antworten