Java数组反向无效

时间:2017-10-29 04:06:44

标签: java arrays

我想要反转用户输入的10个不同的数字。例如,如果用户放置' 34 82 49 102 7 94 23 11 50 31'对于输入,结果应为< 31 50 11 23 94 7 102 49 82 34'但是我一直得到0 0 0 0 0 0 0 0 0 0的结果,我甚至没有从扫描仪获得输入框。添加了图片以获取更多细节。

import java.util.*;
public class ReverseNumbersFor
{
   public static void main(String[] args)
  {
    int [] reverseNumbersWhile = new int [10];
    printReverse(reverseNumbersWhile);
  }

  public void reverseNumbersWhile(int num[])
  {
    System.out.println("Enter 10 numbers : ");
    Scanner in = new Scanner(System.in);
    int [] input = num;

    for (int i = 0; i < input.length; i++)
    {
      input [i] = in.nextInt();
    } 
    System.out.println(input);
  }

  public static void printReverse(int [] value)
  {
    for (int i = value.length - 1; i >=0; i--)
    {
      System.out.print(value[i] + " ");
    }
  }
}

Code image with result

3 个答案:

答案 0 :(得分:0)

您没有调用reverseNumbersWhile方法。您正在初始化一个名为reverseNumbersWhile的数组,然后将其传递给一个只打印其值的方法,这些方法只是初始化为零。

答案 1 :(得分:0)

按如下方式更改您的代码

from heapq import _siftup, _siftdown, heapify
from random import random, randrange, choice

def is_minheap(arr):
    return all(arr[i] >= arr[(i-1)//2] for i in range(1, len(arr)))

n = 40
trials = 1_000_000
for _ in range(trials):

    # Create a random heap
    data = [random() for i in range(n)]
    heapify(data)

    # Randomly alter a heap element
    i = randrange(n)
    x0 = data[i]
    x1 = data[i] = choice(data)

    # Restore the heap
    if x1 > x0:                 # value is increased
        _siftup(data, i)
    elif x1 < x0:               # value is decreased
        _siftdown(data, 0, i)

    # Verify the results
    assert is_minheap(data), direction

答案 2 :(得分:0)

其他答案已经指出了你的代码有什么问题。这是使用Java 8 IntStream -

进行逆转的另一种方法
 public static int[] reverse(int[] a) {
    return IntStream.range(0, a.length).map(i -> a[a.length - 1 - i]).toArray();
 }