错误:类型不兼容:int [] []无法转换为int

时间:2018-08-10 06:35:11

标签: java arrays

如下面的代码所示,我试图添加两个(二维整数数组),我知道第一个方法中的变量(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);
    }

}

4 个答案:

答案 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[][]