3

与えられたこの任務について助けが必要です。誰にも私の仕事を頼むわけではありませんが、これを行う方法については本当に正直にこだわっています。

ユーザーに 10 個の数字を入力してから、すべての数字を逆順に書き込むように求めるプログラムを作成することになっています。

例: 10 を入力 数字: 23 89 21 55 67 89 99 13 98 78 逆順: 78 98 13 99 89 67 55 21 89 23

これまでのところ、ユーザー入力を取得する方法しかありません。誰かが私を正しい方向に押し進めることができれば、とても感謝しています!

import java.util.*;

public class ReverseNumbers
{
public static void main(String[] args)
  {

    Scanner keyboard = new Scanner(System.in);

    int[] values;
    values = new int[10];

    //Ask the user to enter 10 integers
    System.out.println("Please enter 10 numbers:");
    for (int i = 0; i< values.length; i++) 
    {
      values[i] = keyboard.nextInt();
    }
    int[] reverseNums;
    reverseNums = new int[10];
    for (int i = (values.length -1); i>= 0; i--) 
    {
      reverseNums[ reverseNums.length -1 -i ] = values[ i ];
      System.out.println( reverseNums[ i ] );
    } 
 }
}
4

6 に答える 6

5

逆の値を保存したくない場合

    for (int i = (values.length -1); i>= 0; i--) 
    {       
      System.out.println( values[ i ] );
    } 
于 2013-04-11T03:02:06.280 に答える
0

あなたのコードは配列を正しく作成していると思います。2 番目の for ループがそれらを逆方向に反復しているため、元の順序で数値を出力しているだけです。最後のループの後に次のステートメントを追加すると、正しい結果を確認できます。

System.out.println(java.util.Arrays.toString(reverseNums));

1 回の繰り返しで完全なタスクを実行することもできます。

Scanner keyboard = new Scanner(System.in);

int[] reverseNums= new int[10];
System.out.println("Please enter 10 numbers:");
for (int i = 0; i< values.length; i++) {
  reverseNums[values.length -1 - i] = keyboard.nextInt();
}
System.out.println(java.util.Arrays.toString(reverseNums));
于 2013-04-11T06:47:50.937 に答える
0

を使用して行全体を文字列として読み取り、 を使用Scanner.nextLine()して配列に分割しString.split(" ");ます。この後、配列の最後から逆方向に単純に繰り返し、数値を出力できます。

于 2013-04-11T02:58:45.933 に答える
0

割り当てでない場合は、 http://commons.apache.org/proper/commons-lang/ライブラリを使用してみませんか

ArrayUtils.reverse(int[] array)
于 2013-04-11T03:00:18.063 に答える
-1

逆にするには:

for (int i = 0; i < values.length; i++)
    reverseNums[values.length - i - 1] = values[i];
于 2013-04-11T03:02:58.723 に答える