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

Java 错误:不兼容的类型:int[][]无法转换为int,java,arrays,Java,Arrays,正如您在下面的代码中所看到的,我正在尝试添加两个(2-D整数数组),我知道第一个方法中的变量(c)是对数组的引用,为什么我不能返回该数组或其引用,我通常可以返回2-D数组,如何返回 import java.util.*; public class Matrix_Addition { public static int sum (int[][]a,int[][]b){ int[][]c=new int [a.length][b[1].length]; f

正如您在下面的代码中所看到的,我正在尝试添加两个(2-D整数数组),我知道第一个方法中的变量(c)是对数组的引用,为什么我不能返回该数组或其引用,我通常可以返回2-D数组,如何返回

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);
    }

}
import java.util.*;
公共类矩阵加法{
公共静态整数和(整数[][]a,整数[][]b){
int[][]c=新的int[a.length][b[1].length];

对于(int i=0;ic)而言,它是一个数组/矩阵,但如果您试图返回int,请尝试

public static int[][] sum (int[][]a,int[][]b) {
通常,您应该详细说明java在询问问题时告诉您错误出现在哪一行


希望有帮助!

因为您已将c声明为二维数组
(int[]]c=new int[a.length][b[1].length])

sum方法返回intint,并且您试图返回int 2-D数组,因此它会给您一个错误,即不兼容的类型:int[][]无法转换为int

您应该将sum方法的返回类型从int更改为int[]

public static int[][] sum (int[][]a,int[][]b){

您可以使用与输入相同的类型:

public static int[][] sum(int[][] a, int[][] b)

更改这行代码的主要功能

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


您可以使用与输入相同的类型。
public static int[]sum(int[]a,int[]b)