Ich versuche, einige vom Benutzer eingegebene ganze Zahlen durch Leerzeichen getrennt zu sortieren.Benutzereingabe dynamisch sortieren, ohne integrierte Sortiermethoden in Java zu verwenden
Input: 4 2 1 5 9 - Erwartete Leistung: 1 2 4 5 9
I kann nicht herausfinden, wie die Schleife zu stoppen, nachdem der Benutzer drückt in der Schleife eintreten, wo i < Anzahl Mein Code funktioniert, wenn ich die ganzen Zahlen eins nach dem anderen gebe. Jede mögliche Hilfe würde geschätzt werden
class javasort {
public static void main(String[] args) {
int num, i, j, temp;
Scanner input = new Scanner(System.in);
// System.out.println("Enter the number of integers to sort:");
// num = input.nextInt();
num = 5; // <-- the user input should be dynamic
int array[] = new int[num];
System.out.println("Enter integers: ");
for (i = 0; i < num; i++)
array[i] = Integer.parseInt(input.next());
num = i; // make array as big as input ?
for (i = 0; i < (num - 1); i++) {
for (j = 0; j < num - i - 1; j++) {
if (array[j] > array[j + 1]) {
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
System.out.println("Sorted list of integers:");
for (i = 0; i < num; i++)
System.out.println(array[i]);
}}
Sie fehlen ein Paar geschweifte Klammern. Der Körper Ihrer ersten Schleife besteht aus einer einzigen Anweisung. Hinweis: Verwenden Sie für "if" -Anweisungen und Schleifenkörper IMMER geschweifte Klammern. –
Wenn das die beabsichtigte Schleife ist, dann ist es verdächtig. Wenn 'num = i;', dann 'i == num', so ist 'i
Wenn Sie beabsichtigen, die Größe des Arrays jedes Mal zu ändern, wenn Sie eine neue Zahl "finden", dann wird das nur durch Ändern von "num" nicht erreicht. –