Zahlen nach größe sortieren

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Zahlen nach größe sortieren

    Hallo @ all

    Unsere Lehrerin hat uns folgende Aufgabe gestellt:
    In ein Programm sollen 3 Zahlen einlesen und diese per Funktion der größe nach Sortieren werden. Arrays dürfen dabei NICHT benutzt werden. Es soll also mit Zeigern gearbeitet werden. Bis jetzt sieht mein Quelltext so aus:

    Quellcode

    1. #include <stdio.h>
    2. void tausche(int *piZ1, int *piZ2)
    3. {
    4. int iTemp;
    5. iTemp = *piZ1;
    6. *piZ1 = *piZ2;
    7. *piZ2 = iTemp;
    8. }
    9. void sort(int *piZ1, int *piZ2, int *piZ3) //Die Adressen der Variablen aus der Main werden gespeichert
    10. {
    11. }
    12. int main(void)
    13. {
    14. int iZahl1, iZahl2, iZahl3, il;
    15. il=0; //Schleigfe läuft nur einmal wenn il=0
    16. printf("1. Zahl eingeben: ");
    17. scanf("%d",&iZahl1);
    18. fflush(stdin);
    19. printf("2. Zahl eingeben: ");
    20. scanf("%d",&iZahl2);
    21. fflush(stdin);
    22. printf("3. Zahl eingeben: ");
    23. scanf("%d",&iZahl3);
    24. fflush(stdin);
    25. sort(&iZahl1, &iZahl2, &iZahl3); //Es werden die Adressen von den Variablen an sort übergeben
    26. printf("\n\nDie kleinste Zahl ist: %d", iZahl1);
    27. printf("\nDie mittlere Zahl ist: %d", iZahl2);
    28. printf("\nDie gr\x94\xE1te Zahl ist: %d", iZahl3);
    29. getchar();
    30. }
    Alles anzeigen


    Wie kann ich am einfachsten abfragen welche Zahl am kleinsten bzw. am größten ist? Mit IF-Befehlen wäre es glaube ich sehr umständlich und unübersichtlich, da es meiner Meinung nach sehr viele IF-Befehle sein würden. Nochmal: Es dürfen KEINE Arrays benutzt werden. Gibt es noch einen anderen Weg als über IF? Und wenn ich es mit IF machen muss - ist es einfacher jede Bedingung einzeln zu verschachteln oder mit den Operatoren && bzw. || zu arbeiten?

    Hoffe auf eure Hilfe. Viele Grüße
    Crosaider

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Crosaider ()

  • Das einfachste, wenn du dir die ganzen If-Abfragen sparen willst, ist es mit min() & max() zu machen. Zeiger und Arrays sind übrigens gar nicht so verschieden, aber wenn ihrs aus pädagogischen Zwecken nicht nutzen dürft, dann mach halt min-max.
    ~ mfg SeBa

    Ich beantworte keine PMs zu Computer-/Programmierproblemen. Bitte wendet euch an das entsprechende Forum.

    [Blockierte Grafik: http://i.creativecommons.org/l/by-sa/3.0/80x15.png]