这里的新编程和我不断收到的错误信息,'不兼容的类型,int无法转换为int []',问题是添加R1& R2如果它们长度相等,如果没有打印出一条消息,说“阵列必须长度相同”,如果重要,不确定哪里出错,任何帮助都会非常感激
public int[] arrayAdd(int[] R1, int[] R2)
{
int[] sumArray= new int[R1.length];
if( R1.length!= R2.length)
{
System.out.println("The arrays must be same length");
}
else
{
for(int i=0; i< R1.length; i++)
for (int j=0; j<R2.length; j++)
{
sumArray= R1[i]+ R2[j]; // Error
}
}
return sumArray;
}
答案 0 :(得分:5)
不确定我哪里出错了
您正在尝试将int
分配给类型为int[]
的变量。
这不合法......而且没有意义。
此:
sumArray= R1[i]+ R2[j];
应该是这个
sumArray[something_or_other] = R1[i] + R2[j];
...除了你有一堆其他错误,这意味着一个简单的“点修复”将是不正确的。
提示:您不需要嵌套循环来添加两个数组的元素。
- 史蒂夫
答案 1 :(得分:2)
sumArray[i]= R1[i]+ R2[j]; // updated line
你需要分配一个数组元素,但你做错了。
答案 2 :(得分:0)
您的代码在很多方面都被打破了,至少:
int []sumArray
应该是`int sumArray [0]。int *sumArray = new int[10]
sumArray
是一个数组,因此要使用sumArray[index] = ...
所以这可能会更好:
public int *arrayAdd(int[] R1, int[] R2) {
if( R1.length!= R2.length) {
return nullptr;
}
int *sumArray= new int[R1.length];
for(int i=0; i< R1.length; i++) {
sumArray[i] = R1[i]+ R2[i];
}
return sumArray;
}
编辑问题后
如果你想逐个元素地对两个数组求和,那么单个循环就足够了......
答案 3 :(得分:-1)
实际上在该行中sumArray是一个整数数组,你只是将它指定为整数,而且你还没有声明变量j。 试试这个 -
public int[] arrayAdd(int[] R1, int[] R2)
{
int[] sumArray= new int[R1.length];
if( R1.length!= R2.length)
{
System.out.println("The arrays must be same length");
}
else
{
for(int i=0; i< R1.length; i++)
{
sumArray[i]= R1[i]+ R2[i]; // Error
}
}
return sumArray;
}