Bubblesort???



  • du musst den rückgabewer von strcmp überprüfen, also if(strcmp(str1, str2) == 0) {// ist identisch!}

    //EDIT: too late....



  • [OT] sigtest..... [/OT]



  • ...er vertauscht schonmal etwas...aber noch nicht ganz so wie er soll...

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
      {
      char *line[1024] ;  
      char *file_lines[20] ;
      int anz_bytes;
      int i;
      i=0;
      char *help;
      int j;
      int cmp;
      cmp=0; 
    
        do
      {   
          printf("Bitte geben Sie den %d.von 5 String ein : \n",i+1);
          fgets(*line,1024,stdin);
          anz_bytes = strlen(*line);
          file_lines[i] = (char *)malloc(anz_bytes+1);
          strcpy(file_lines[i],*line);
          i++;
          }while (i<=4);
    
          for(i=0;i<5;i++)
          {
                          printf("%d%s\n",&line[i],file_lines[i]);
                          }
              j=0;
               for(j=0;j<4;j++)
               {
    
               cmp=strcmp(file_lines[j],file_lines[j+1]);
               if (cmp==0)
               { 
               } else
               { if (cmp<0)
               {
               }
                      else
                       {
                          help = file_lines[j];
                          file_lines[j] = file_lines[j+1];
                          file_lines[j+1] = help;
                        }
                        }
                          }
                        for(j=0;j<5;j++)
                        {
                 printf(" %d %s\n",&line[j],file_lines[j]);                
                 }             
      return 0;
    }
    
    }
    


  • #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
    /*  char *line[1024] ;  */
        char line[1024] ;  
        char *file_lines[20] ;
        int anz_bytes;
        int i;
        char *help;
        int j;
        int done;
        done=0;
        i=0;
    
        do  {  
          printf("Bitte geben Sie den %d.von 5 String ein : \n",i+1);
    /*      fgets(*line,1024,stdin); */
          fgets(line,1024,stdin);
    /*      anz_bytes = strlen(*line); */
          anz_bytes = strlen(line);
          file_lines[i] = (char *)malloc(anz_bytes+1);
    /*      strcpy(file_lines[i],*line); */
          strcpy(file_lines[i],line);
          i++;
          }while (i<=4);
    
          for(i=0;i<5;i++)
          {
              printf("%d %s\n",i,file_lines[i]);
          }
          while ( ! done ) { /* sortiert ists dann wenn keine vertauschungen */
              done=1;
              j=0; /* nicht notwendig wird in nächster zeile initialisiert */
              for(j=0;j<4;j++) { /* alle vergleichen */
                  if ( strcmp(file_lines[j],file_lines[j+1]) > 0 ) { /* wenn erster string groesser 2. string */
                     help = file_lines[j];
                     file_lines[j] = file_lines[j+1];
                     file_lines[j+1] = help;
                     done=0;  /* noch nicht fertig */
                  }
              }
           }
           for(j=0;j<5;j++) {
               printf("%d %s\n",j,file_lines[j]); 
               free(file_lines[j]); /* speicher freigeben */               
           }            
       return 0;
    }
    


  • @ZuK: schön, eine Lösung, aber lernt Chibi da viel draus? 😕



  • @Chibi muss es unbedingt ein bubblesort sein ich selbst haette einen einfacheren sortieralkoholrythmus geschrieben...

    @Zuk schoene lösung das muss man dir lassen 😃



  • Miq schrieb:

    @ZuK: schön, eine Lösung, aber lernt Chibi da viel draus? 😕

    Na das hoffe ich schon. Sein code war ja gar nicht mehr so schlecht, es hat ja nur mehr die schleife um die vertauschungen gefehlt. Ich tu mir halt leichter etwas mit code zu erkären als lange um den heissen brei herumzureden.
    Kurt



  • --linuxuser-- schrieb:

    @Chibi muss es unbedingt ein bubblesort sein ich selbst haette einen einfacheren sortieralkoholrythmus geschrieben...

    @Zuk schoene lösung das muss man dir lassen 😃

    womit hast du das denn gemacht?



  • --linuxuser-- schrieb:

    @Chibi muss es unbedingt ein bubblesort sein ich selbst haette einen einfacheren sortieralkoholrythmus geschrieben...

    Noch einfer als Bubblesort geht doch kaum noch.



  • Danke fuer eure Hilfe 🙂
    das programm funktioniert 😃 und ich habs verstanden denk ich 🙂

    jep sollte Bubblesort sein. Aber was waere denn einfacher?
    Es gibt doch auch noch qsort(oder so) hatte ich gelesen.Aber ist das nicht etwas anderes...oder.



  • Es gibt noch eine ganze Reihe von Sortieralgorithmen, so z.B. heapsort. Ich wüsste allerdings nicht, was noch einfacher sein sollte. 😞


Anmelden zum Antworten