数组的编写方法
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;
}
虽然注意。使用您提供的第一个函数获得 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];
如评论中所述,您只想以相反的顺序打印 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.
的结果
我知道这一定很容易,但我不得不问。我怎么能为此写一个方法我弄错了但我找不到它。该代码是关于使用方法反转数组。
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;
}
虽然注意。使用您提供的第一个函数获得 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];
如评论中所述,您只想以相反的顺序打印 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.
的结果