Was gibt dieses C-Programm aus?
-
Sieht nach Bubblesort aus.
-
Sortieren??? ja aber wie genau???
-
infooo schrieb:
Sortieren??? ja aber wie genau???
Bei so etwas empfiehlt es sich den Code Zeile für Zeile durchzugehen und (mit Papier und Stift) die Variablen-Werte zu betrachten.
-
infooo schrieb:
Sortieren??? ja aber wie genau???
Was weißt du bis jetzt über Bubblesort?
Benutze den Debugger.
-
Ja ist schon klar mit devc++ habe ich die ausgabe aber weiß nicht wie ich ohne pc es hinbekommen soll?
Ich möchte den Algorithmus dahinter ohne PC verstehen und selbst rausbekommen d.h. ohne Programm.
-
infooo schrieb:
Ich möchte den Algorithmus dahinter ohne PC verstehen und selbst rausbekommen d.h. ohne Programm.
Zettel und Bleistift und dann Schritt für Schritt das Programm durchgehen und die Daten/Variablen notieren.
Schritt für Schritt und nichts überspringen.
-
Hier mal ein Ansatz und manchmal ist es auch hilfreich mal den Code in eine verstndlichere Form zu bringen (Einrückungen usw.)
#include <stdio.h> #include <stdlib.h> int main() { int x[5]; // deklariert ein array mit 5 werten int i, key, j, m; // deklariert die integer variablen i, key, j und m x[0] = 9; x[1] = 2; x[2] = 5; x[3] = 8; x[4] = 3; // füllt das array mit werten for(i = 1; i <= 4; i++) // zählt von 1 bis 4 und weist den wert dem integer i zu { key = x[i]; // kopiert den aktuellen wert von array x[stelle i] in den integer key j = i - 1; // initialisiert den integer j mit dem wert aus integer i minus 1 while(key < x[j] && j >= 0) { x[j + 1] = x[j]; j = j - 1; } x[j + 1] = key; for(m = 0; m <= 4; m++) { printf("%d", x[m]); } printf("\n"); } system("PAUSE"); return 0; }
-
Videonauth schrieb:
Sehr aussagekräftige Kommentare
Nicht.
-
DirkB schrieb:
Videonauth schrieb:
Sehr aussagekräftige Kommentare
Nicht.
Das sol ein Ansatz sein und keine Komplettlösung, das ist nicht meine Aufgabe. Von daher finde ich deine Aussage fehl am Platz.
-
ok danke für die hilfreichen antworten...
was mach bitte die 2. for-schliefe genau wennn da
printf("%d", x[m]);
das prog gibt da nur einen wert aus nähmlicht was m ist aber wie kommen die ganzen zahlen hintereinander.
x[1]= 2;
dann die erste ausgabe ist
29583
25983 hier rückt die 9 nach rechts wie nimmt das programm die ganzen zahlen mit und verschiebt die 9 nach rechts
-
Die zweite for Schleife gibt das ganze Array aus und danach folgt ein new line.
Das mitnehmen bzw. umschieben der Zahlen finded in der while Schleife statt.
-
Die 2. For-Schleif gibt das Array aus. Daran kannst du den Fortschritt der Sortierung sehen.
Beiprintf("%d", x[m]);
wird das Element m vom Array x ausgegeben (als dezimale Zahl)Das verschieben macht die while-Schleife.
Sie merkt sich den ersten Wert in key. Dann wird verschoben, und key an die freie Stelle geschrieben (ist sowas wie Dreieckstausch).
-
vielen dank für die hilfreichen tippssssssssss
so viel info reicht dankeeeeeeeeeeeeeeeeeeeeee