Strings sortieren BubbleSort Algorythmus



  • Hallo Community, ich habe folgendes Programm entwurfen. Es ließt eine Anzahl von beliebigen Strings ein und gibt diese dann aus. Nun möchte ich sie mit BubbleSort sortieren lassen. Hat vllt jemand einen Lösungsvorschlag ? 😕 😕 😕

    Vielen Dank im Voraus
    CWriter_22

    ________________________________________________________________________________

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>

    int main ()
    {
    char zeile[80+1];
    char *z;
    char **text_zeiger;
    char **text_zeiger0;

    int i, j, i1, i2;
    int n;

    printf("Wie viele Zeilen sollen bearbeitet werden?");
    scanf_s("%d", &n);

    text_zeiger = (char **)malloc(n*sizeof(char*));

    for (i=0; i <= n-1; i++)
    {
    printf("Bitte %d'te Zeile von %d eingeben\n: ",i, n-1);
    fflush(stdin);
    gets_s(zeile);
    (text_zeiger+i) = (char)malloc(strlen(zeile)+1);
    strcpy(*(text_zeiger+i),zeile);
    }

    for ( i=0; i <= n-1; i++)
    {
    printf("%d'te Zeile = ",i);
    puts((text_zeiger+i));
    free(
    (text_zeiger+i));

    }

    free (text_zeiger);
    fflush(stdin);
    getchar();

    return 0;
    }



  • Das C Forum ist nebenan.



  • Danke für die Info 🙂 Ich schreibe aber mit C++



  • CWriter_22 schrieb:

    Danke für die Info 🙂 Ich schreibe aber mit C++

    Nein!



  • ch okay, und wieso genau ist das dann eine cpp Datei ;)?



  • Weil du dein C Programm in eine cpp Datei gesteckt hast.



  • Klar, deswegen lernen wir an der Uni C++, weil wir eigentlich in C programmieren 😃 😃 😃 😃 😃 Logisch. Danke für deine Hilfe



  • Offensichtlich lernt ihr kein C++.



  • Wenn du wirklich C++ schreiben willst, dann sollte dein Programm so anfangen:

    #include <iostream>
    #include <string>
    #include <vector>
    

    Die folgenden Header würden dahingegen (im Normalfall) nicht vorkommen: <stdio.h>, <string.h>, <stdlib.h> . Du würdest auch kein malloc nutzen, sodern stattdessen den std::vector verwenden. Statt char zeile[80+1]; , einer fixen größe und somit unnötigen Einschränkung auf 80 Zeichen, würdest du einfach einen std::string verwenden.

    Sollte das wirklich als C++-Kurs laufen und nicht als C-Kurs, dann hat der Lehrer vielleicht mal irgendwann etwas C gelernt, aber lehrt definitiv kein C++.



  • Dein C++ Programm lässt sich wunderbar mit einem C Compiler übersetzen.



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (alle ISO-Standards) in das Forum C (alle ISO-Standards) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • - du hast keine Ahnung von C++ (geschweige denn C bzw. deren Unterschiede)
    - dein Lehrer hat keine Ahnung von C++ (geschweige denn C bzw. deren Unterschiede)
    (wozu glaubst du z.B. steht in deinem Code vor malloc ein Zeigercast? Das werde ich dir sagen: weil somit verschleiert werden soll, dass mit einem C++ Compiler versucht wird, C Code zu übersetzen)

    Trotzdem kommst du als Anfänger (da du offenbar an einer Uni lernst) in ein Programmierforum und zweifelst die hier gegebenen Hinweise/Korrekturen an - kommst du dir da nicht selbst lächerlich vor?

    Auch gehst du naiverweise davon aus, an der Uni Programmieren gelehrt zu bekommen - gut dafür kannst du zunächst mal nichts - deshalb sage ich es dir hier: Programmieren lernt man - aufgrund der Ahnungslosigkeit sämtlicher Lehrer dort von Programmierpraxis - niemals an einer Uni.

    Glaube mir, du bist hier nicht der Erste sondern einer von vielen, der glaubt, an der Uni Programmieren gelehrt zu bekommen; versuche ja nicht, dich mit deinem dort erworbenen "Wissen" später mal irgendwo zu bewerben.

    Deine Frage zu Bubblesort:
    hier warst du faul, du hast keine eigenen Versuche hierzu gezeigt und erwartest, dass dir hier jemand (leider gibt es auch hier mal ein paar Deppen mit Helfersyndrom, die dir deine ganzen Hausaufgaben erledigen zu können glauben) eine Komplettlösung anbietet.


Log in to reply