Arrays sortiren



  • Hallo ich will ein Array von der Groesse 30 sortiren lassen doch ihrgenwie bekomme ich das nicht hin oder ich bin ihrgenwie zu blöd dazu den algoritmuss zu
    verstehen warscheinlich auch da ich das Programm am freitag abliegfern muss und ich nicht erst noch große verstehens versuche machen kann

    Also hier ist der Sortialgorutmuss

    void bubbleSort(int numbers[], int array_size)
    {
      int i, j, temp;
    
      for (i = (array_size - 1); i >= 0; i--)
      {
        for (j = 1; j <= i; j++)
        {
          if (numbers[j-1] > numbers[j])
          {
            temp = numbers[j-1];
            numbers[j-1] = numbers[j];
            numbers[j] = temp;
          }
        }
      }
    }
    

    und ich will aber das

    C[30]
    

    sortiren lassen wie übergebe ich denn nun die werte
    zur info habe das C[] globall deklariert

    ich weis bin ein übelster anfänger und stelle bestimmt echt dumme fragen



  • ... warum bas Array nummer keine Größenangaben besitz

    für hilfe wäre ich sehr verbunden



  • Der Alg. gibt mir net wie gewünscht die 3 Größten werte aus

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(void) {
       int q;
       /* Das Array zum Sortieren */
       int test_array[10] ;
       test_array[0]=12; test_array[1]=77;test_array[2]=1;
       test_array[3]=3;test_array[4]=2;test_array[5]=100;
       test_array[6]=22;test_array[7]=7;test_array[8]=10;
       test_array[9]=8;
    
      //Sortiren des Arrys
    
     int array;
     int elemente ;
    
         int i,temp;
       while(elemente--)
          for(i = 1; i <= elemente; i++)
             if(test_array[i-1] > test_array[i]) {
                temp=test_array[i];
                test_array[i]=test_array[i-1];
                test_array[i-1]=temp;
             }
    
      // Ausgabe der Größten drei Arrys 
          printf("%d , %d , %d ", test_array[7],test_array[8],test_array[9]);
       printf("\n");
       system ("PAUSE");
       return EXIT_SUCCESS;
    }
    

    [code]

    Was fehlt den noch ich finde ihrgenwie den fehler net
    Bitte um hilfe.



  • Lichtenauer schrieb:

    Hallo ich will ein Array von der Groesse 30 sortiren lassen doch ihrgenwie bekomme ich das nicht hin oder ich bin ihrgenwie zu blöd dazu den algoritmuss zu
    verstehen

    Nicht nur den Algorithmus. Offenbar auch Deutsch 😮



  • Hi,
    einfach mit qsort sortieren.
    [code]#include <stdio.h>
    #include <stdlib.h>

    int compare (const void * a, const void * b)
    {
    return ( (int)a - (int)b );
    }

    int main(void) {
    int q;
    /* Das Array zum Sortieren */
    int test_array[10] ;
    test_array[0]=12; test_array[1]=77;test_array[2]=1;
    test_array[3]=3;test_array[4]=2;test_array[5]=100;
    test_array[6]=22;test_array[7]=7;test_array[8]=10;
    test_array[9]=8;

    //Sortiren des Arrys
    qsort(test_array,10,sizeof(int),compare);
    // Ausgabe der Größten drei Arrys
    printf("%d , %d , %d ", test_array[9],test_array[8],test_array[7]);
    printf("\n");
    //system ("PAUSE");
    return EXIT_SUCCESS;
    }[code]


Anmelden zum Antworten