Präprozessor SWAP

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

  • Präprozessor SWAP

    Hallo C Freunde!!!!

    Also habe da mal ne Frage ich soll ein Programm Schreiben das mir Zahlen in ein Array schreibt sortiert und mir dann den Median wert ausgibt
    ok Soweit eigentlich kein Problem nur soll die sortierung mit einer Präprozessoranweisung SWAP geschehen also habe ich nun folgendes gemacht :

    Quellcode

    1. #include <stido.h>
    2. #definde SWAP(a,b) do{a^=b; b^=a; a^=b; } while (0)
    3. .
    4. .
    5. .
    6. .
    7. /*Sortieren mit SWAP*/
    8. for (i=0 ; i<5; i++) {
    9. if (arr[i] > arr[i+1]){
    10. SWAP (arr[i+1], arr[i]);
    11. }
    12. }
    Alles anzeigen


    So nun ein paar fragen was hat SWAP mit der zugehörigen XOR defininition zu tun (hab das beispiel aus einem tut ) kann da keinen Zusammenhang herstellen denn XOR bedeutet ja
    (A *~B) + (~A*B) aber für was brauch ich das zum vertauschen wäre nett wenn mir da jemand auf die Sprünge hilft
    das Programm läuft zwar aber es sortiert nicht so wie ich es mir Vorstelle probiere schon die ganze zeit rum komme aber zu keinem ergenbiss auch hier wäre ein kleine hilfe bzw ein lösungsansatz hilfreich

    Danke im Vorraus!

    Mit freundlichen Grüßen
  • In der englischen Wikipedia ([wikipedia]http://en.wikipedia.org/wiki/XOR_swap_algorithm[/wikipedia]) steht wieso man mit xor die Werte von Variablen tauschen kann, ohne eine zusätzliche Hilfsvariable. Das do {..} while(0) kannste auch weglassen, das macht in meinen Augen keinen Sinn. Ich würde Präprozessorcode immer aber Klammern um nicht auf Operatorenbindung o.ä. reinzufallen
    ~ 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]