如下面的代码所示,我试图添加两个(二维整数数组),我知道第一个方法中的变量(c)是对该数组的引用,为什么我不能返回该数组还是参考,我一般可以返回二维数组吗?
import java.util.*;
public class Matrix_Addition {
public static int sum (int[][]a,int[][]b){
int[][]c=new int [a.length][b[1].length];
for(int i=0;i<a.length;i++){
for(int j=0;j<a[i].length;j++)
c[i][j]=a[i][j]+b[i][j];
}
return c;
}
public static void display(int[][]a){
for(int i=0;i<a.length;i++){
for(int j=0;j<a[i].length;j++)
System.out.println(a[i][j]);
}
}
public static void main(String[] args) {
int[][]a={{1,2,3},
{4,5,6},
{7,8,9}};
int[][]b={{9,8,7}
,{6,5,4},
{3,2,1}};
int[][]c=sum(a,b);
display(a);
display(c);
}
}
答案 0 :(得分:6)
c是一个数组/矩阵,但是您尝试返回一个int,请尝试
public static int[][] sum (int[][]a,int[][]b) {
通常,您应该具体说明在问问题时java告诉您错误出现的行。
希望有帮助!
答案 1 :(得分:2)
自从您将 c 声明为二维数组(int[][]c=new int [a.length][b[1].length])
您的sum方法返回 int ,并且您尝试返回int二维数组,因此出现错误,指出不兼容的类型:int [] []无法转换为int
您应该将返回类型从int更改为int [] []。
public static int[][] sum (int[][]a,int[][]b){
答案 2 :(得分:0)
您可以使用与输入相同的类型:
public static int[][] sum(int[][] a, int[][] b)
答案 3 :(得分:0)
更改此行代码的主要功能。
int[][]c=sum(a,b);
与
int c=sum(a,b);
以及所有类似这样的下线代码...
display(a);
display(b);
System.out.println(c);
这将起作用。因为如果看到add()
函数定义
public static int sum (int[][]a,int[][]b){.....} // return type is int not int[][].
原因:
sum(int[][], int[][])
的返回类型是int
而不是int[][]
。