c programme geht nicht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • c programme geht nicht

    hi. ich habe hier ein einfaches c-programm das aber leider nicht funktioniert.
    zuerst soll eine zeichenkette eingelesen werden. und die buchstaben sollen dann sortiert ausgegeben werden:

    #include <stdio.h>

    #define max 50

    int main()

    {

    char string[max],z;

    int i,laenge,h,sortiert;

    printf ("Text eingeben:\n");

    gets (string);

    laenge= 0;

    i=0;

    for(i=0; string[i]!='\0'; i++);

    laenge=i;

    sortiert = 0;

    while (sortiert = 0)

    {

    sortiert = 1;

    for (i=0;i<laenge-1;i++)

    {

    if (string[i]>string[i+1])

    {

    h=string[i];

    string[i]=string[i+1];

    string[i+1]=h;

    sortiert = 0;

    }

    }

    }


    printf("\n%i Zeichen werden sortiert ausgegen: \n",laenge);

    for(i=0; i<=laenge-1; i++);

    printf("%c | ",string[i]);
    return 0;
    }



    warum geht das nicht?
    mfg andi

  • #2
    Also ich muss sagen, ich habe bis jetzt nur mit c++ gearbeitet.
    Und ich habe dein Programm in c++ auch zum Laufen gebracht.

    Hinter deiner ersten und letzten for-Schleife steht ein Semikolon. Deshalb führt er den gedachten Code nicht aus. Semikolon weg und geschweifte Klammern um den dazugehörigen Code (letzteres ist nicht dringend notwendig).
    Dann in der while-Schleife: Bei Vergleichen immer zwei Gleichheitszeichen benutzen! Hab ich am Anfang von Pascal her kommend auch immer falsch gemacht.

    Code:
    #include <stdio.h>
    
    #define max 50
    
    int main()
    {
      char string[max],z;
      int i,laenge,h,sortiert;
      printf ("Text eingeben:\n");
    
      gets (string);
    
      laenge= 0;
    
      i=0;
    
      for(i=0; string[i]!='\0'; i++)
      {
        laenge=i+1;
      }
      sortiert = 0;
      while (sortiert == 0)
      {
        sortiert = 1;
        for (i=0;i<laenge-1;i++)
        {
          if (string[i]>string[i+1])
          {
            h=string[i];
            string[i]=string[i+1];
            string[i+1]=h;
            sortiert = 0;
          }
        }
      }
    
      printf("\n%i Zeichen werden sortiert ausgegeben: \n",laenge);
      for(i=0; i<=laenge-1; i++)
      {
        printf("%c | ",string[i]);
      }
      return 0; 
    }
    So lief es jetzt bei mir, hab auch noch die Länge um 1 erhöht in deiner ersten for-Schleife

    Kommentar


    • #3
      merci

      vielen dank. es funktioniert!
      mfg andi

      Kommentar

      Lädt...
      X