我的代码如下,我无法理解在调用方法时我必须使用什么作为参数。
import java.util.Scanner;
public class addArrays {
public static void main (String[]args) {
int arr [] = new addArrays(int [] array1, int [] array2);
}
public static int[] addArrays(int[] arr1, int[] arr2) {
Scanner in = new Scanner(System.in);
System.out.println("Please enter the size of an array: ");
int size = in.nextInt();
int[] array1 = new int[size];
for (int i = 0; i < array1.length; i++) {
array1[size] = in.nextInt();
}
int[] array2 = new int[size];
for (int j = 0; j < array2.length; j++) {
array2[size] = in.nextInt();
}
int[] array3 = new int[size];
for (int k = 0; k < array3.length; k++) {
array3[size] = array1[size] + array2[size];
}
return array3;
}
}
答案 0 :(得分:1)
你的函数addArrays有两个参数(arr1和arr2),但它们不在函数中使用。正在添加的数组被初始化并填充在函数(array1和array2)中。
我想你应该将array1和array2的初始化和填充移动到main()中,并在addArrays函数中将两个数组的加法分开。然后将array1和array2(从System.in填充)传递给函数。
您还使用size变量而不是索引(i和j)来填充数组。这些都可以重用相同的索引变量;它可以在循环之外重新定义或定义。
注意变量的名称及其可见性,特别是在将它们传递给函数时,并将它们作为函数参数接受。
import java.util.Scanner;
public class addArrays {
public static void main (String[]args) {
Scanner in = new Scanner(System.in);
System.out.println("Please enter the size of an array: ");
int size = in.nextInt();
System.out.println("Please enter numbers to populate array 1: ");
int[] array1 = new int[size];
for (int i = 0; i < size; i++) {
array1[i] = in.nextInt();
}
System.out.println("Please enter numbers to populate array 2: ");
int[] array2 = new int[size];
for (int j = 0; j < size; j++) {
array2[j] = in.nextInt();
}
System.out.println("Thank you! The result is: ");
int[] arr3 = addArrays(array1, array2);
for (int j = 0; j < size; j++) {
System.out.println(arr3[j]);
}
}
public static int[] addArrays(int[] arr1, int[] arr2) {
int size = arr1.length;
int[] array3 = new int[size];
for (int k = 0; k < size; k++) {
array3[k] = arr1[k] + arr2[k];
}
return array3;
}
}
答案 1 :(得分:0)
我们可以假设它们的大小相同,这样可以使事情变得更简单。不确定你要使用扫描仪的是什么,但是下面的函数需要2个相同大小的数组,并返回一个等价索引的总和。
public static int[] addArrays(int[] arr1, int[] arr2) {
int size = arr1.length;
int[] array1 = new int[size];
for (int i = 0; i < size; i++) {
array1[i] = arr1[i] + arr2[i];
}
return array1;
}