Ich bin sehr neu in der Programmierung. Für eine Zuweisung muss ich eine Funktion erstellen, die das Array in aufsteigender Reihenfolge sortieren kann. Ich habe eine Funktion geschrieben, funktioniert aber nicht ganz. Ich habe in diesem Forum schon viele Fragen zu Fällen wie diesem gelesen (zB nach Blasensorte gesucht), aber ich kann mein Problem immer noch nicht lösen.Sortierung Werte in einem Array in C
mein Code:
void sortOnValue(float *values, int size)
{
int i, d;
float swap;
for (i = 0; i < (size - 1); i++)
{
for (d = 0; d < (size - 1 - i); d++);
{
if (values[d] > values[d+1])
{
swap = values[d];
values[d] = values[d+1];
values[d+1] = swap;
}
}
}
}
void main()
{
int i;
float x, y;
float val[10]; //1.5, 2.2, 7.3, 9.2, 7.4, 7.5, -8.0, 1.5, 12
val[0] = 1.5;
val[1] = 2.2;
val[2] = 7.3;
val[3] = 9.2;
val[4] = 7.4;
val[5] = 7.5;
val[6] = -8.0;
val[7] = 1.5;
val[8] = 12;
printValues(val, 10);
sortOnValue(val, 10);
printValues(val, 10);
}
meine Ausgabe:
Values: 1.500 -8.000 2.200 7.300 9.200 7.400 7.500 0.000 1.500 12.000
Jede Idee, warum es nicht funktioniert? Ich denke, es könnte sein, weil die Schleife endet, bevor es sollte, aber ich bin mir nicht sicher. Gibt es auch eine effizientere Möglichkeit, einem Array Werte zuzuweisen als das, was ich getan habe?
Vielen Dank im Voraus für jede Hilfe!
Für eine Sache, die Sie nicht initialisieren alle Elemente im Array. –
'float val [10] = {1,5, 2,2, 7,3, 9,2, 7,4, 7,5, -8,0, 1,5, 12}; 'zum Zuweisen. Auf diese Weise werden unspezifizierte Werte ebenfalls auf 0 gesetzt. – MayeulC
Vielen Dank! Ich habe das mit versucht; Trennen Sie die Werte, also danke für den Tipp –