为数组编写方法

时间:2017-03-10 21:07:38

标签: java arrays methods reverse

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

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 + " ");
  }
}

4 个答案:

答案 0 :(得分:0)

如评论中所述,您只想以相反的顺序打印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]);
    }

}

答案 1 :(得分:0)

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

答案 2 :(得分:0)

可能无法在arrayReverse方法中初始化main方法中的大小:可能尚未初始化本地变量大小。并且arrayreverse必须返回int的结果。

答案 3 :(得分:-1)

你的功能想看起来有点像这样。

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