【问题标题】:Java program for recursively reversing an array用于递归反转数组的Java程序
【发布时间】:2013-11-05 23:14:10
【问题描述】:

我应该编写一个程序来递归地反转数组中的数字。在这一点上,我真的不太了解代码。这是我目前所拥有的。

这是反向方法本身:

  public static void reverse(int[] array, int i, int j)
  {
    if (i < j)
    {
      int temp = array[i];
      array[i] = array[j];
      array[j] = temp;
      reverse(array, ++i, --j);

我不确定这是否正确。然后我有 main 方法。

  public static void main(String[] args)
  {
   Scanner input = new Scanner(System.in);
   System.out.println("Enter size of the array");
   int n = input.nextInt();
   int[] array = new int[n];

   for (int i =0; i <array.length; i++)
   {
     System.out.println("Enter number to be inputed into array.");
     array[i] = input.nextInt();

   }
    System.out.println(array);
  }

它打印不正确,并在我认为应该是数组的文本中打印数字和字母。

【问题讨论】:

  • 您的代码不完整,能否贴出整个反向方法?
  • 我认为它只是缺少一对右括号。
  • 是的,但最好确保。
  • 注意:main方法实际上并没有调用reverse
  • 这是我的代码。它只是缺少像ajb所说的大括号。它仍然无法正常工作。我无法正确调用我的方法。

标签: java arrays recursion reverse


【解决方案1】:

System.out.println(array); 更改为:

System.out.println(Arrays.toString(array));

然后您可以查看您的方法是否正确反转。目前,您没有打印数组的内容,只是打印数组所在的内存地址。

【讨论】:

  • 什么是字符串?请原谅我可能很愚蠢的问题。
  • String 是一种数据类型,它本质上表示chars 的数组。这可能不是技术上的写法,但String 是一种保存单词、短语等的数据类型,就像int 是一种保存整数的数据类型一样。
  • 一个不可变的字符序列。
猜你喜欢
  • 2012-10-20
  • 1970-01-01
  • 1970-01-01
  • 2012-07-06
  • 1970-01-01
  • 1970-01-01
  • 2019-07-10
  • 1970-01-01
  • 2019-07-25
相关资源
最近更新 更多