array bucket-sort in C

Ich versuche zu Lesen Liste von zahlen aus txt-Datei und Sortieren Sie dann mit Bucket-sort.
so, hier ist mein code:

void bucketSort(int array[],int *n)
{
    int i, j;  
    int count[*n]; 
    for (i = 0; i < *n; i++)
        count[i] = 0;

    for (i = 0; i < *n; i++)
        (count[array[i]])++;

    for (i = 0, j = 0; i < *n; i++)  
        for(; count[i] > 0; (count[i])--)
            array[j++] = i; 
}   

int main(int brArg,char *arg[])
{

    FILE *ulaz;
    ulaz = fopen(arg[1], "r");

    int array[100];
    int i=0,j,k,n;


      while(fscanf(ulaz, "%d", &array[i])!=EOF)i++;

    fclose(ulaz);    
    n=i;
    for (j = 0; j<i; j++)
    {
        printf("Broj: %d\n", array[j]);
    }

    BucketSort(array,&n); 
    for (k = 0; k<i; k++)
        printf("%d \n", array[i]);   


    return 0;
}

Es sind keine Fehler im code,aber wenn ich rufe meine Funktion anstelle des sortierten array bekomme ich die array-Länge Zufallszahlen(Beispiel: 2 3 5 4 nach dem Sortieren bekomme ich 124520 124520 124520 124520 oder einige andere zufällige Zahl), da ich bin ein Anfänger,könnte mir jemand helfen mit meinem code und was ich falsch gemacht habe? (sorry für schlechtes Englisch)

  • Dein code funktioniert, wenn i ist größer als alle Werte des Arrays array
InformationsquelleAutor Marko B | 2015-01-10
Schreibe einen Kommentar