BlueJ/Java程序返回一个新数组,该数组包含其参数的按组件求和
下面的代码返回一个新数组,该数组包含其参数的组件式和(假设它们的长度相同),例如,如果输入数组是{0,1,2}和{2,2,3},那么输出将是{2,3,5},如果输入数组的元素数不同,则该方法应返回nullBlueJ/Java程序返回一个新数组,该数组包含其参数的按组件求和,java,bluej,Java,Bluej,下面的代码返回一个新数组,该数组包含其参数的组件式和(假设它们的长度相同),例如,如果输入数组是{0,1,2}和{2,2,3},那么输出将是{2,3,5},如果输入数组的元素数不同,则该方法应返回null public class Sum { public static double[] sum(double a[], double b[]){ if (a.length != b.length) return null; int[] s = new double
public class Sum
{
public static double[] sum(double a[], double b[]){
if (a.length != b.length)
return null;
int[] s = new double[a.length];
for(int i=0; i<a.length; i++)
s[i] = a[i] + b[i];
return s;
}
public static void main(String[] args) {
//calling the method to seek if compiles
double[] results = Sum.sum(new double[] {0,1,2} + {2,2,3});
//printing the results
System.out.println(java.util.Arrays.toString(results));
}
}
公共类总和
{
公共静态双[]和(双a[],双b[]{
如果(a.长度!=b.长度)
返回null;
int[]s=新的双精度[a.长度];
对于(int i=0;i,代码中有两个问题:
+
运算符仅允许用于基本数字类型。在这一行代码中:
Sum.sum(new double[] {0,1,2} + {2,2,3});
int[] s = new double[a.length];
您正试图为双[]
变量应用+
运算符,这是不允许的,因此会出现异常。由于该方法已接受两个参数双[]
,然后使用逗号分隔两个双[]
来发送它们:
Sum.sum(new double[] {0,1,2}, new double[] {2,2,3});
- 这行代码:
Sum.sum(new double[] {0,1,2} + {2,2,3});
int[] s = new double[a.length];
不能用另一个基元类型的数组初始化基元类型的数组。int[]
和double[]
是完全不同的类。因此,请更改变量的类型声明:
double[] s = new double[a.length];
更多信息:
现在我收到另一条错误消息:行的不兼容类型:int[]s=new double[a.length];,我不知道我的语法错误在哪里。请提供一个可能的解释?您不能将int数组分配给double数组!@arkady-这很有效。试试看。因为我已经编写了new double[]
在花括号之前,这里从来没有任何int[]
。@Acemi-是的,这是一个单独的错误,我第一次读代码时没有看到。s
必须是double[]
,而不是int[]
。