Hallo user99b3d5, vielleicht bist du ja schon fertig, vielleiht verstehst du meinen Kommentar nicht. Daher versuche ich die zwei Möglichkeiten aufzuzeigen.
array[] ist Input, die Zahlen werden direkt ausgegeben.
int merker = INT_MAX;
int pos;
for (int loop = 0; loop < len; loop++){
// Diese Schleife geht so oft durchs Array wie es Elemente hat. Damit sind dann alle Zahlen ausgegeben
// und das Array ist mit INT_MAX gefüllt.
for(int i=0; i< len; i++){
// Diese Schleife geht das Array durch und sucht den aktuell kleinsten Wert, merkt sich den Wert
// und seine Position
if (array[i] < merker){
pos = i;
merker = array[i];
}
// Nachdem alles durch ist befindet sich in Merker der kleinste Wert. Der wird ausgegeben
// und dann im Array gelöscht.
Ausgabe(merker)
array[pos]=INT_MAX
}
}
ODER Du musst das Array erst sortieren und dann ausgeben. Dann brauchst du einen Dreieckstausch.
// Die Schleifen laufen immer eins kürzer als das Array lang ist. Du hast immer zwei Elemente in Arbeit.
for (int loop = 0; loop < (len-1); loop++){
for (int i = 0; i < (len-1); i++){
if (array[i] > array[i+1] {
// Wenn links(i) größer ist als rechts(i+1) muss man tauschen.
int temp;
temp = array[i];
array[i] = array[i+1];
array[i+1]=temp;
}
}
}
Jetzt ist das Array sortiert und kann ausgegeben werden. Natürlich gibt es noch optimalere Algorithmen und auch bei diesen Beispielen Optimierungsmöglichkeiten. Überleg dir welche.
Gruß jobe
Sonstiger Berufsstatus, Punkte: 505
Ich habe lediglich ganz unten bei der Aufgabe die Ausgabe vergessen. Aber trotzdem danke für die ausführliche Antwort!
─ user99b3d5 05.11.2021 um 20:45Hallo user99b3d5, und hier wieder eine Grundregel des Programmierens: jede Zeile Code muss durchlaufen und überprüft werden! Ich habe beide Beispiele aus dem Kopf aufgeschrieben. Prompt befindet sich in meinem ersten Beispiel ist ein Fehler. Findest du ihn? Gruß jobe
─ jobe 06.11.2021 um 09:03
Markdown wird unterstützt.
Hallo user99b3d5, ich würde Dir gerne helfen, habe aber folgendes noch nicht verstanden: wo befinden sich die Zahle zu Beginn unsortiert? In array[]? WO sollen sie sich nachher befinden? Auch in array[] oder soll die ermittelte Zahl direkt ausgegeben werden?
─ jobe 04.11.2021 um 19:27Gruß jobe