ユーザ入力の整数をスペースで区切って並べ替えることを試みています。Javaの組み込みソート方法を使用せずにユーザ入力を動的にソート
入力:4 2 1 5 9 - 予想される出力:1 2 3 4 5 9
私は、ユーザーがEnterキーを押した後にループ内でループを停止する方法を見つけ出すことはできません。ここで、i < num。私のコードは整数を1つずつ入力すると動作します。すべてのヘルプはあなたのコードは非常にほぼ正しかった
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'なので、' i
新しい番号を "見つける"たびに配列のサイズを変更するつもりならば、単にnumを変更するだけでそれを達成することはできません。 –