Wieso ist da ein Fehler...???
-
Hi, ich habe heute ein Programm geschrieben, wo man Zahlen einliesst und die sollen der Reihenfolge nach von der kleinsten bis zur größten ausgegeben werden. Das klappt ja auch, ausser, dass die allerkleinste Zahl hinter der allergrößte steht... woran kann das liegen???
Wäre lieb, wenn mir jmd helfen könnte... das hier ist mein Code:
#include <stdio.h> void main() { int anzahl = 1, x, y, wechsel, feld[10]; do // Anfang der Eingabe von 10 Zahlen { printf("\nEingabe der %i. Zahl: ", anzahl); scanf("%i", &feld[anzahl - 1]); anzahl++; } while(anzahl <= 10); // Ende der Eingabe von 10 Zahlen... for(x = 0; x < 10; x++) { for(y = 1; y < 10; y++) { if(feld[x] > feld[y]) { wechsel = feld[x]; feld[x] = feld[y]; feld[y] = wechsel; } } } printf("Ausgabe in sortierter Reihenfolge:"); for(anzahl = 9; anzahl >= 0; anzahl--) { printf("%i", feld[anzahl]); if(anzahl >= 0) { printf(", "); } } getchar(); getchar(); }
-
Kenn diesen Sortieralgorytmus nicht. Kannst ja bubblesort draus machen
int done = 0; while(!done ){ done = 1; for(y = 1; y < 9; y++) { if(feld[y-1] > feld[y]){ wechsel = feld[y-1]; feld[y-1] = feld[y]; feld[y] = wechsel; done = 0; } } }
Kurt
-
@ZuK
Schau dir den Sortieralgorithmus aniaaa nochmal genauer an.aniaaa schrieb:
for(y = 1; y < 10; y++)
Du musst y x+1 zuweisen und nicht einfach 1.
-
AJ schrieb:
@ZuK
Schau dir den Sortieralgorithmus aniaaa nochmal genauer an.Schaut aus wie eine variation von bubblesort.
Meins ist auch ein bubblesort.
Oder stehe ich auf der Leitung ?
Kurt
-
Danke AJ, so geht das und ich habs jett auch verstanden
DANKÖÖÖ!!!
-
ZuK schrieb:
Kenn diesen Sortieralgorytmus nicht.
ZuK schrieb:
Schaut aus wie eine variation von bubblesort.
Kennst ihn ja doch