2011-12-07 81 views
0

我已經從用戶那裏得到了10個值,我想把它放到一個數組中,並將其調用到一個方法中,然後調用另一個包含數組的方法,該方法在不使用全局變量的情況下反轉第一個數組的整數。例如,用戶給我值1,2,3等,並將其存儲在第一個數組中,然後在第二個數組中輸出3,2,1。如何使用另一個數組反轉一個數組中的整數?

我有部分代碼從用戶那裏獲取整數,但我不知道如何在不使用全局變量的情況下反轉數組。代碼在values[i]到達第二個方法時不運行;

這是我到目前爲止有:

public static void main(String[] args) { 

    getInput(); 
    reverseInput(); 
    System.exit(0); 
} 

public static void getInput() { 

    Scanner keyboard = new Scanner(System.in); 

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

    //Ask the user to enter 10 integers 
    System.out.println("Please enter ten numbers."); 
    for (int i = 0; i<values.length; i++) {//for loop to display the values entered 
     values[i] = keyboard.nextInt(); 
     System.out.println("Value" + (i +1) + " is " + values[i]); 
    } 
} 

public static void reverseInput() { 

    System.out.println("Now we are going to reverse the numbers."); 
    Scanner keyboard = new Scanner(System.in); 

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

    for (int i = (values.length -1); i>= 0; i--) {//for loop to display integers in reversed order 
     values[i]; 
     System.out.println(values[i]); 
    } 
} 

回答

1

使用「getInput」爲基礎,以獲得10個號碼,然後經過「for」循環,只是做另一個用於循環反向

public static void reverseInput() 
    { 

    Scanner keyboard = new Scanner(System.in); 

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

    //Ask the user to enter 10 integers 
    System.out.println("Please enter ten numbers, we are going to reverse the numbers"); 
    for (int i = 0; i<values.length; i++) //for loop to display the values entered 
    { 
     values[i] = keyboard.nextInt(); 
    }; 
    int[] revValues; 
    revValues = new int[10]; 
    for (int i = (values.length -1); i>= 0; i--) //for loop to display integers in reversed order 
    { 
     revValues[ revValues.length -1 -i ] = values[ i ]; 
     System.out.println(revValues[ i ]); 
    } 
} 
+0

但我必須做兩個單獨的數組,第二個使用第一個值。 – rahme24

+0

好吧,我已經更新了答案,用「values」數組的值反向填充「revValues」數組。 – ComputerSaysNo

2

可以使用ArrayUtils.reverseCommons Lang

ArrayUtils.reverse(values); 
+1

我認爲這個想法是他應該寫自己的反向功能。 – QuantumMechanic

+0

是的,我應該編寫反轉第一個數組的輸入的數組。 – rahme24

+2

啊!抱歉!好吧,如果你正在學習,我建議你先在一張紙上一步一步地做,然後嘗試編碼。 – elias

3

首先,如果你不會使用全局變量,那麼你將需要將數組從get輸入方法傳遞到reverseInput方法。事情是這樣的:

int[] values = getInput(); 
reverseInput(values); 

然後輸出在reverseInput法陣,那就要看起來像這樣:

public static void reverseInput(int[] values) { 
     for(int i = (values.length - 1); i >= 0; i--){ 
      System.out.println(values[i]); 
     } 
    } 
+0

好的,這是有道理的,但我現在的問題是我究竟在做什麼?當我在reverseInput方法中執行它時,它不會編譯,所以我可能會在主方法中執行它? – rahme24

+0

你需要刪除你有「values [i];」的行 – Michaeldcooney

+0

我刪除了那個。那是我通過陣列的地方嗎? – rahme24

1

好吧,你知道如何顯示在參照順序的元素。正如你寫道:因此,考慮

for (int i = (values.length - 1); i >= 0; i--) { 
    System.out.println(values[i]); 
} 

,你會怎麼放values(說它有5種元素)的另一個數組(稱之爲reversedValues),使得values[4]投入reversedValues[0]等多達元素values[0]被放入reversedValues[4]

相關問題