Finden Sie die Min/Max-Werte innerhalb einer for-Schleife
Ich gesucht habe nach Antworten auf diese Frage, aber nicht in der Lage, etwas zu finden. Ich muss das maximum und minimum des input-zahlen, sondern die Werte, die ich brauche innerhalb der for-Schleife und ich kann nicht herausfinden, wie Sie zu benutzen sind außerhalb.
System.out.print("How many numbers do you want to input?");
int totalNumbers = console.nextInt();
int minMax = 0;
for(int i = 1; i <= totalNumbers; i++){
System.out.print("Number " + i + ": ");
int inputNumbers = console.nextInt();
}
System.out.println();
int smallest = Math.min(minMax);
System.out.println("Smallest = " + smallest);
int largest = Math.max(minMax);
System.out.println("Largest = " + largest);
Brauche ich nicht geändert code nur etwas, das mich auf die richtige Spur.Danke!
Betrachten sammeln, Eingabe der Ziffern in die temporäre Datenstruktur wie array oder einer Auflistung, die Sie analysieren können später aus sammeln-Schleife.
InformationsquelleAutor Eyzek | 2015-10-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Merken Sie das problem mit folgendem loop?
Läuft der loop
totalNumbers
mal und jedes mal Sie erstellen eine neueint
mit dem NameninputNumbers
und speichern den empfangenen Wert in der Konsole. Auch dort, wo ändern Sie den Wert vonminMax
? AuchMath.min(or max)
nicht einzelne paramtere und nicht einmal kompilieren.Nun haben Sie einige Optionen:
Ich Schreibe nicht nur keine Lösung, wie ich will, Sie, es selbst zu versuchen.
InformationsquelleAutor i_am_zero
Die Mathematik.min() und Math.max () - Methoden, nach der oracle-Dokumentation, können Sie nur zwei Werte vergleichen. Importieren Sie die Werte in ein array, und dann die Durchführung von Operationen auf dem array, können Sie sich minima und Maxima, sowie alle anderen Daten, die Bedienung Recht einfach.
InformationsquelleAutor Schuyler Reinken
Wenn ich mich nicht verlesen, was Sie wollen, können Sie nicht nur halten können, eine variable außerhalb der for-Schleife und überprüfen Sie Sie?
Dies ist die direkte und logische Art und Weise der überprüfung der Eingabewerte und der Entscheidung, ob Sie die kleinste oder größte derzeit bekannte (Edit:, es sei denn, Sie erfordern die Verwendung von
Math.minMax
)Ich bin damit einverstanden, zu einem gewissen Grad. Entweder ich brauche, um zu überprüfen die Werte, die sich gegen eine Art von konstanter Wert, oder initialisieren
smallest
für die max int size, undlargest
den min, int-Größe. Ihre Gedanken?InformationsquelleAutor Singular1ty
Pseudocode:
Hinweis:
Java
int
s nicht repräsentieren ±∞. VerwendenInteger.MIN_VALUE
undInteger.MAX_VALUE
statt.Integer
kann kleiner sein, alsInteger.MIN_VALUE
und keineInteger
können größer sein, alsInteger.MAX_VALUE
- und in diesem Fall wir immersmallest
undlargest
als das Ergebnis. NÖ?Wenn Sie nicht vorsichtig sind, mit der ursprünglichen Werte, dann könnten Sie am Ende mit Müll am Ende. E. g., wenn der Benutzer alle positiven zahlen, aber
smallest
wurde initialisiert, um0
dann, dass der code zurück0
alssmallest
, auch wenn der Benutzer nie in0
. Durch die Verwendung der max-Wert fürsmallest
- und der min-Wert fürlargest
garantieren Sie, dass die endgültigen Ergebnisse werden von der Eingabe des Benutzers (sofern der Benutzer mindestens eine Zahl).Im Falle, daß der Anwender eingegebenen Werte als
10,50,40,30,60
die Ausgabe wird nicht10 and 60
. Ist es nicht?Ich bin mir nicht sicher, was du fragst... Der kleinste ist 10, und die größte ist 60. Hier ist eine demo von meinem pseudocode in JavaScript.
Oh ja. Ich habe gerade verwirrt 🙂
InformationsquelleAutor DaoWen
Kann man nur setzen, wenn die else-Bedingung im inneren for-Schleife... wie
InformationsquelleAutor Ranveer