2 による除算は完全には機能しません。奇数の整数がある場合にのみ機能します。
例えば:
配列の長さを表す整数を教えてください: 5
5 つの値を入力してください
値 #0: 1
値 #1: 2
値 #2: 3
値 #3: 4
値 #4: 5
現在の配列: 1 | 2 | 3 | 4 | 5 |
配列が逆になりました: 5 | 4 | 3 | 2 | 1 | BUILD SUCCESSFUL (合計時間: 11 秒)
ここで、偶数の整数、たとえば 6 を入力すると、次のようになります。
配列の長さを表す整数を教えてください: 6
6 つの値を入力してください
値 #0: 1
値 #1: 2
値 #2: 3
値 #3: 4
値 #4: 5
値 #5: 6
現在の配列: 1 | 2 | 3 | 4 | 5 | 6 |
配列が逆になりました: 6 | 5 | 3 | 4 | 2 | 1 | BUILD SUCCESSFUL (合計時間: 5 秒)
ソースコード:
/* 配列の長さを表す整数の入力をユーザーに促し、その数の値を入力するようユーザーに求めるプログラムを作成します。これらの値を配列に格納し、配列を出力します。次に、配列要素を逆にして、最初の要素が最後の要素になり、2 番目の要素が最後から 2 番目の要素になり、というように、古い最後の要素が最初になります。印刷される順序を逆にするだけではいけません。実際に配列に格納される方法を変更します。2 番目の配列を作成しないでください。あなたが持っている配列内の要素を再配置するだけです。(ヒント: 場所を変更する必要がある要素を交換します。) 要素が逆になったら、配列を再度出力します。*/
パッケージ reversinganarray;
java.util.Scanner をインポートします。
public class ReversinganArray {
public static void main(String[] args) {
int i = 0;
Scanner input = new Scanner(System.in);
System.out.print("Give me an integer that would represent the length of an array: ");
int integer = input.nextInt();
int[] test = new int[integer];
System.out.println("Enter " + integer + " " + "value(s)");
while (i < integer) {
System.out.println("Value #" + i + ": ");
test[i] = input.nextInt();
i++;
}
System.out.print("Your current array: ");
i = 0;
while (i < integer) {
System.out.print(test[i] + " | ");
i++;
}
i = 0;
while (i <= integer / 2) {
int temp = test[i]; //a = b
test[i] = test[(integer - i - 1)]; //b = c
test[(integer - i - 1)] = temp;// c = a
i++;
}
System.out.println("");
System.out.print("Your array reversed: ");
i = 0;
while (i <= integer - 1) {
System.out.print(test[i] + " | ");
i++;
}
}
}
私はたまたまこの問題を自分で理解しようとしています...