簡體   English   中英

錯誤:類型不兼容:int [] []無法轉換為int

[英]error: incompatible types: int[][] cannot be converted to int

如您在下面的代碼中看到的,我試圖添加兩個(二維整數數組),我知道第一個方法中的變量(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);
    }

}

c是一個數組/矩陣,但是您嘗試返回一個int,請嘗試

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

通常,您應該具體說明在問問題時java告訴您錯誤出現在哪一行。

希望能幫助到你!

由於您已將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){

您可以使用與輸入相同的類型:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM