Java中的反向用户输入数组
我正在尝试将用户号码输入从右向左移动。除了没有登记第一个号码外,它似乎起了作用。我想是因为我的倒数是1。我试过使用0,反之亦然,但结果是错误的。关于如何改变用户数量有什么想法吗? 期望的输出与用户输入相反。示例:用户输入3个数字。3.0 2.0 1.0. 反向1.0。2.0. 3.0Java中的反向用户输入数组,java,Java,我正在尝试将用户号码输入从右向左移动。除了没有登记第一个号码外,它似乎起了作用。我想是因为我的倒数是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 []
// 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] );
}
}
}
如果你想颠倒元素的顺序,那就是颠倒顺序而不是移位。正确移位将使它们一个向右或向左移位,要么放下末端元素,要么可能将其旋转到另一端 所以第一件事是,知道你在说什么 颠倒数组中整数的顺序:
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--;
}
试试这个:
Double[] numbers = new Double[count];
...
Collections.reverse(Arrays.asList(numbers));
如果您提供示例输入和所需输出,则会有所帮助。然后,您可以为它编写一个测试,并努力使测试成功。但请不要做所有的事情。不要调用类数组,因为有一个java.util.Arrays类,读者会感到困惑。我想要的示例输出与用户输入的相反。例如,用户输入4个数字4,3,2,1。反向1。2.3.4.