1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Wir danken allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben.

C-Abweichungen in XCode (bubblesort)

Dieses Thema im Forum "Software" wurde erstellt von minimum, 7. Juni 2005.

  1. minimum

    minimum New Member

    Moin,
    ich bin Student in der FH und programmieren in C.
    Da ich mein iBook bevorzuge programmier ich nicht in Bloodshet sondern eben in XCode, bisher lief das auch ganz gut.
    Nun habe ich eine Bubblesort programmiert und das Ding läuft nicht auf dem Mac. Dafür aber auf dem PC. Alles funktioniert auf dem Mac, nur der Sort-Algorythmus tut nicht.
    Gibts da abweichungen zu XCode ?
    Gruß,
    Max

    Wer hilfsbereit sit und etwas Zeit hat: Ich habe mal den Code angefügt, ebenso die Datei die er sortieren soll.
     

    Anhänge:

  2. Kafi

    Kafi New Member

    ich schau mir das mal an :)
     
  3. minimum

    minimum New Member

    spitze !
    (aber nicht schlagen wegen des wirrwars an Code und schlechten Kommentaren)
     
  4. brumbaer

    brumbaer New Member

    if (vergleiche (a[n],a[n+1])== 1)

    funktioniert nicht wie Du Dir das vorstellst.

    strcmp (in vergleiche) gibt nicht 0, 1 oder -1 zurück,
    sondern 0, >0 oder < 0

    Ersetze == 1 durch > 0 und Alles wird gut.


    mfg
    SH

    @minimum
    Klasse Kommentar, sehr hilfreich
     
  5. Kafi

    Kafi New Member

    Das Problem ist, das für strcmp(a,b) folgendes definiert ist

    wenn a und b gleich, ist der rückgabewert == 0
    wenn a < b, rückgabewert < 0
    wenn a > b, rückgabewert > 0

    du bist aber davon ausgegangen, dass der Rückgabewert für
    a > b == 1 ist, was es bei windows ja auch zu sein scheint.

    Wenn du nicht auf == 1, sondern auf > 0 abfragst, funkioniert der algorithmus :)

    Hoffe, das hilft

    Kafi
     
  6. Kafi

    Kafi New Member

    grml.. warst schneller :)
     

Diese Seite empfehlen