需要帮助在反向订单中编写数字

时间:2013-04-11 02:55:53

标签: java

我需要一些帮助来完成这项任务。不要求任何人做我的工作,但我真的很老实地坚持如何做到这一点。

我应该编写一个程序,提示用户输入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 ] );
    } 
 }
}

6 个答案:

答案 0 :(得分:5)

如果您不想存储反转值

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

答案 1 :(得分:3)

您的代码看起来很适合阅读values的输入内容。现在,您可以反向循环遍历该数组并打印值:

for (int i = 0; i < values.length; i++)
  System.out.println(values[values.length - i - 1]);

考虑一下,当i == 0它将打印values[9]时,因为10 - 0 - 1 = 9.最后,当i == 9时它会打印values[0],因为10 - 9 - 1 = 0。

如您所见,不需要额外的reverseNums数组。

PS:如果需要,您可以将int[] values;values = new int[10];合并为一行:int[] values = new int[10];

答案 2 :(得分:0)

使用Scanner.nextLine()将整行读作字符串,然后使用String.split(" ");将其拆分为数组。在此之后,您可以简单地从数组的末尾开始向后迭代并打印数字。

答案 3 :(得分:0)

如果不是作业,那么为什么不尝试使用http://commons.apache.org/proper/commons-lang/

ArrayUtils.reverse(int[] array)

答案 4 :(得分:0)

我认为你的代码正确地创建了数组。您只是按原始顺序打印出数字,因为您的第二个for循环正在向后迭代它们。您可以通过在最后一个循环之后添加以下语句来查看正确的结果:

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

您也可以只使用一次迭代执行完整任务:

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

答案 5 :(得分:-1)

要扭转它:

for (int i = 0; i < values.length; i++)
    reverseNums[values.length - i - 1] = values[i];