我知道这一定很容易,但我不得不问。我怎么能为此写一个方法我弄错了但我找不到它。代码是关于使用方法反转数组。
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 + " ");
}
}
答案 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;
}
虽然注意。使用您提供的第一个函数来获取arr
。 arr
的大小始终为50.因为每次强制它为50。因此,如果您将size
确定为5,并将数字[1,2,3,4,5]
输入到arr
。 arr
实际上是[1,2,3,4,5,0,0,0,0,0,0,....,0]
。所以前5位数后跟45个零。我建议您执行以下操作:
int size = read.nextInt();
int array[] = new int[size];