2013-07-15 2 views
-2

Я пытаюсь сдвинуть ввод номера пользователя справа налево. Кажется, что он работает, за исключением того, что он не регистрирует первое число. Я думаю, потому что для обратной части у меня есть счет 1. Я пробовал использовать 0 и наоборот, но это приводит к ошибке. Любые идеи о том, как сменить номера пользователей? Желаемый результат - это то, что вводит пользователь. Пример: Пользователь вводит 3 номера. 3.0 2.0 1.0. Reverse 1.0. 2,0. 3.0.Реверсивный пользовательский массив ввода в Java

// 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]); 

     } 



    } 
} 
+2

Это поможет, если вы предоставите ввода образца и желаемый результат. Затем вы можете написать тест для него и работать, чтобы сделать тест успешным. Но, пожалуйста, не делайте все в 'main'. И не называйте свой класс 'Arrays', так как есть класс' java.util.Arrays', и читатели будут смущены. –

+0

мой желаемый результат выборки обратный тому, что вводит пользователь. Например, пользователь вводит 4 номера 4., 3., 2., 1. Обратный 1. 2. 3. 4 – Shinryu80

ответ

0

Если вы хотите изменить порядок элементов, это REVERSE ORDER не SHIFT. «Shift» правильно переместил бы их все вправо или влево, либо сбросив конечный элемент, либо (возможно), повернув его на другой конец.

Итак, прежде всего, чтобы знать, о чем вы на самом деле говорите.

реверсивный порядок чисел в массиве:

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--; 
} 
0

Попробуйте это:

Double[] numbers = new Double[count]; 
... 
Collections.reverse(Arrays.asList(numbers)); 
Смежные вопросы