我想排列一些由空格分隔的用戶輸入整數。在Java中使用內置排序方法動態排序用戶輸入
輸入:4 2 1 5 9 - 預期輸出:1 2 4 5 9
我不能找出如何將用戶按下輸入後停止循環迴路中,其中i < NUM。當我逐個輸入整數時,我的代碼有效。任何幫助,將不勝感激
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]);
}}
你缺少一對花括號。你的第一個循環的主體由一個且只有一個語句組成。建議:總是對'if'語句和循環體使用大括號。 –
如果這是預期的循環,那麼它是可疑的。如果'num = i;',那麼'i == num',所以'我
如果您的意圖是每次「找到」一個新號碼時都要更改數組的大小,那麼只需更改'num'就不會完成此操作。 –