数组移动…显示运行后的测试用例



我想将数组中的元素右移1。最后一个元素应该放到位置0。到目前为止,我只完成了向右移动的部分,我想看看这是否正确,但当我按下run时,控制台没有显示任何内容。我需要输入system。output。println();但是我不知道用print命令调用什么。这是我的代码。

我试着输入System.out.println(rotate({1,2,3,4}));

public class Rotate {
    static void rotate(int[] A) {
        int arrayLength = A.length;
        for(int i = 0; i <= arrayLength-1; i++){
            A[i] = A[i+1];
        }  
    }
    public static void main(String[] args){
    }
}

您需要调用一个可以打印的函数,例如System.out.println()。现在,您的代码存在一些其他问题,您需要进行一些更改(有不止一种方法可以做到这一点)。一种方法是从rotate函数返回一个数组,然后打印返回的数组。

static int[] rotate(int[] A) {
    int arrayLength = A.length;
    for(int i = 0; i <= arrayLength-1; i++){
        A[i] = A[i+1];
    }
    return A;
}

现在可以从main方法中调用它,并打印每个元素。如果你只是调用System.out.println()方法并传递给它一个数组,它将打印这个对象的Hashcode。这对于打印数组信息不是很有用。因此,您可以编写一个循环并打印数组中的每个元素。

public static void main (String[] args)
{
    int[] x = {1,2,3,4};
    int[] y = (rotate(x));
    System.out.println(y) // prints the hash, not what you want..

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

您也可以使用System.out.println(Arrays.toString(y));打印整个数组,而不是单独打印数组的每个元素。


你现在仍然会得到一个错误

这是因为你的rotate方法没有正确实现。但我想那超出了这个问题的范围。

要验证这实际上是工作的,您可以尝试在对其应用rotate之前打印数组。

      int[] x = {1,2,3,4};
      for(int i = 0; i < x.length; i++) {
           System.out.println(x[i]);
      }
      // or alternative
      System.out.println(Arrays.toString(x));

解决旋转和打印问题(如果你不想返回数组):

static void rotate(int[] A) {
    int arrayLength = A.length;
    int t = A[arrayLength-1];
    for (int i = arrayLength - 1; i > 0; i--) {
        A[i] = A[i-1];
    }
    A[0] = t;
    for (int i : A) {
        System.out.println(i);
    }
}

最新更新