数组的编写方法

Writing methods for Arrays

我知道这一定很容易,但我不得不问。我怎么能为此写一个方法我弄错了但我找不到它。该代码是关于使用方法反转数组。

import java.util.Scanner;
public class Test{
public static void main(String[] args) {
       int i;
       int size;
       int array[] = new int[50];
       Scanner read = new Scanner(System.in);
       System.out.println("Enter the size of the array");
       size= read.nextInt();
       System.out.print("Enter Array Numbers : ");
       for(i=0; i<size; i++)
       {
           array[i] = read.nextInt();
       }

   }
    public static int arrayReverse(int array[]){
    int size;  
        for(int i = 0; i < size/ 2; i++){

         int c = array[i];
          array[i] = array[size - i - 1];
          array [size - i - 1]  = c;
         }

      for(int k:array)
        System.out.print(k + " ");
  }
}

你的功能会希望看起来有点像这样。

public static int[] arrayReverse(int[] arr) {
    int size = arr.length;
    int invertedArr[] = new int[size];
    for(int i = 0; i<size; i++){
        inverterArr[i] = arr[size-1-i];
    }
    return invertedArr;
}

虽然注意。使用您提供的第一个函数获得 arrarr 的大小将始终为 50。因为您每次都将其强制为 50。因此,如果您决定 size 为 5,并将数字 [1,2,3,4,5] 输入到 arrarr 实际上是 [1,2,3,4,5,0,0,0,0,0,0,....,0]。所以前 5 位数字后跟 45 个零。我建议您执行以下操作:

int size = read.nextInt();
int array[] = new int[size];

如评论中所述,您只想以相反的顺序打印 array。你可以这样做:

public static void main(String[] args) {
    int i;
    int size;

    Scanner read = new Scanner(System.in);
    System.out.println("Enter the size of the array");
    size = read.nextInt();
    int array[] = new int[size];//Set the size of the array when you definetely know it
    System.out.print("Enter Array Numbers : ");
    for (i = 0; i < size; i++) {
        array[i] = read.nextInt();
    }
    for(int j = size-1; j >= 0; j--){
        System.out.println(array[j]);
    }

}

您可以在全局和静态中声明变量,或者将其作为参数传递给函数 arrayReverse,或者在函数 arrayReverse 中做 int size = array[].length;

main方法中的size可能没有在arrayReverse方法中初始化:局部变量size可能没有被初始化。并且 arrayreverse 必须 return int.

的结果