#include <stdio.h>
#include <stdlib.h>
float values[] = { 4, 1, 10, 9, 2, 5, -1, -9, -2,10000,-0.05,-3,-1.1 };
int compare (const void * a, const void * b)
{
return ((int) (*(float*)a - *(float*)b));
}
int main()
{
int i;
qsort (values, 13, sizeof(float), compare);
for (i = 0; i < 13; i++)
{
printf ("%f ",values[ i ]);
}
putchar('\n');
return 0;
}
Das Ergebnis ist zu verwenden:Problem versucht, die C qsort Funktion
-9,000000 -3,000000 -2,000000 -1,000000 -1,100000 -0,050000 1,000000 2,000000 4,000000 5,000000 9,000000 10,000000 10000,000000
Es ist falsch, weil die Reihenfolge von -1 und -1.1 wird geändert. Ich glaube, es passiert, weil meine "vergleichen" -Funktion.
Wie kann ich das beheben?
Dank
_qsort_ funktioniert gut. Ihr _call to qsort_ ist defekt. – aaronasterling