Ich weiß, dass Sie Zahlen einfach mit einem Array sortieren können, aber meine Aufgabe für die Klasse ist, dass ich vier Zahlen in absteigender Reihenfolge sortieren muss, indem ich if-Anweisungen und keine Arrays .
Hier ist mein Code so weit:
%Vor%Aus diesem Code bekomme ich die Zahlen in absteigender Reihenfolge, aber es gibt eine Ziffer, die mit einer Null angezeigt wird, damit ich weiß, dass etwas nicht gut läuft.
Beispiel I / O: Wenn 40, 52, 6 und 7000 eingegeben werden, 7000, 0, 40, 6 werden ausgegeben, wenn die erwartete Ausgabe 7000, 52, 40, 6 ist.
Ich bin mir nicht sicher, was ich falsch mache, aber ich würde es gerne wissen, damit ich eine angemessene Note bekommen kann.
Danke.
Da bereits eine vollständige Antwort gepostet wurde, ist hier ein weiterer Algorithmus. Bei Verwendung eines Sortiernetzwerks kann dies mit 5 if / swap-Anweisungen geschehen. Dies ist ein c-Codebeispiel für die absteigende Sortierung von 4 Zahlen:
%Vor%Dieses Beispiel zeigt eine aufsteigende Sortierung von 10 Zahlen:
%Vor%Ihr Programm scheint den ersten und letzten Ort richtig zu finden. Seine Logik bricht jedoch an dem Punkt, an dem sie den zweiten Platz finden muss.
%Vor%Sehen wir uns nun ein Beispiel an, in dem die Eingabe 52, 40, 6, 7000 ist.
Also erwarten wir, dass die Zahl, die auf den zweiten Platz geht, 52 ist, die firstNum
.
firstNum != firstPlace
? Ja, es ist anders als 7000, true
. firstNum != fourthPlace
? Ja, es ist anders als 6, true
. firstNum < firstPlace
? Ja, es ist kleiner als 7000, true
. firstNum > fourthPlace
? Ja, es ist größer als 6, true
. firstNum > fourthNum
? Nein, fourthNum
ist 7000 und 52 ist nicht größer als das. Also bekommen wir false
hier. Somit ist firstNum
nicht als zweiter Platz ausgewählt und Ihr Programm bricht ab.
Die Bedingung für secondNum
ist ebenfalls etwas anders gelöst.
Beachten Sie auch, dass einige der Bedingungen redundant sind. Wenn true
that firstNum < firstPlace
ist, gilt auch firstNum != firstPlace
.
Sie können also versuchen, die Logik Ihrer Bedingungen zu korrigieren, oder Sie können einen anderen Algorithmus ausprobieren. Zum Beispiel:
x
und y
aus, indem Sie temp = x; x = y; y = temp
ausführen). Tags und Links java sorting if-statement