我正在尝试编写一个方法,它将两个数组作为参数,然后返回它们的总和。但我有两个问题首先我现在有错误,说不兼容的类型,并在返回s显示错误。另一个问题是如果一个数组比另一个数组短,如何将0值添加到一个数组中。
干杯。
public class Question1d{
public static void main (String [] args){
double[] v = {1, 2, 3, 4, 5};
double[] w = {5, 4, 3, 2, 1};
double[] s;
}
public static double add(double[] v, double[] w){
int a;
if (v.length >= w.length){
a = v.length;
}
else{
a = w.length;
}
double[] s = new double[a];
for(int i = 0; i<=a; ++i){
s[i] = v[i] + w[i];
}
return s;
}
}
答案 0 :(得分:2)
您已将方法声明为返回double
(单个值)而不是double[]
(值数组)。
处理零值可以计算出最短和最长数组的长度。
将结果数组声明为最长。
从0到最短的循环将值加在一起。
从最短到最长的循环只是从较长的数组复制值。
答案 1 :(得分:1)
您返回的是double[]
,而不是您所声明的double
。
答案 2 :(得分:1)
请检查更新的代码。你需要在方法中提到返回类型为数组。
public class Question1d{
public static void main (String [] args){
double[] v = {1, 2, 3, 4, 5};
double[] w = {5, 4, 3, 2, 1};
double[] s;
for(double d:Question1d.add(v, w))
System.out.println(d);
}
public static double[] add(double[] v, double[] w){
int a;
if (v.length >= w.length){
a = v.length;
}
else{
a = w.length;
}
double[] s = new double[a];
for(int i = 0; i<a; ++i){
s[i] = v[i] + w[i];
}
return s;
}
}
2.it无法更新任何数组的大小。