-2

ユーザー番号の入力を右から左にシフトしようとしています。最初の番号が登録されていないことを除けば、動作しているようです。逆の部分はカウントが1だからだと思います。0とその逆を使ってみましたが、エラーになります。ユーザー番号をシフトする方法についてのアイデアはありますか? 目的の出力は、ユーザーが入力したものの逆です。例: ユーザーが 3 つの数字を入力します。3.0 2.0 1.0。リバース 1.0。2.0。3.0。

// import Scanner 
import java.util.Scanner;
public class Arrays {


   public static void main (String [] args){

      int count=0;

      //introduce Scanner
      Scanner input = new Scanner(System.in);
      //printout question asking for user input and use count as input variable
      System.out.println("Please input the size of array");
      count=input.nextInt();
      //create array and connect count to it
      double[] numbers = new double [count];

      System.out.println("Please input  "+ numbers.length+ " double numbers");
      //create for loop for original number order

      for ( count=0; count<numbers.length; count++){

         numbers[count] = input.nextDouble(); 

         System.out.print( +numbers[count] + "  ");     

      }

      //print out the reverse order
      System.out.print("\n After Reverse Order " );

      //create for loop for reversed number order
      for (count =  1;  count< numbers.length; count++){

         numbers[count-1]=numbers[count];

         System.out.println ( "\n"+ numbers[count] );   

      }



   } 
}
4

2 に答える 2

0

これを試して:

Double[] numbers = new Double[count];
...
Collections.reverse(Arrays.asList(numbers));
于 2013-07-15T03:40:46.760 に答える
0

要素の順序を逆にしたい場合は、SHIFT ではなく REVERSE ORDER です。「シフト」は正しくそれらをすべて右または左にシフトし、最後の要素をドロップするか、または(おそらく)反対側に回転させます。

ですから、まず、実際に何について話しているのかを知ることです。

配列内の整数の順序を逆にする:

int i = 0;
int j = numbers.length - 1;   // corresponding index at opposite end of array.

// stop when half the array has been swapped.. with the other half.
while (i < j) {               
    // swap between ends.
    int swap = numbers[i];
    numbers[i] = numbers[j];
    numbers[j] = swap;

    // advance indices.
    i++;  j--;
}
于 2013-07-15T02:05:33.660 に答える