代码之家  ›  专栏  ›  技术社区  ›  Techy

两个二维数组求和

  •  1
  • Techy  · 技术社区  · 4 年前

    我试图获取两个2d数组输入,然后将它们相加,但无法正确编译。出于某种原因,如果我在方法之外声明“addedMatrix”,代码将编译,但addedMatrix为空

    以下是我到目前为止的情况:

    System.out.print("Enter Matrix 1 : ");
    double[][] matrix1 = new double[3][3];
    
    for (int r = 0; r < matrix1.length; r++)
    {
        for (int c = 0; c < matrix1[0].length; c++)
        {
            matrix1[r][c] = input.nextDouble();
        }
    }
    
    System.out.print("Enter Matrix 2 : ");
    double[][] matrix2 = new double[3][3];
    
    for (int r = 0; r < matrix2.length; r++)
    {
        for (int c = 0; c < matrix2[0].length; c++)
        {
            matrix2[r][c] = input.nextDouble();
        }
    }
    
    addMatrix(matrix1, matrix2);
    
    System.out.println("The matrices added are : ");
    
    for (int r = 0; r < addedMatrix.length; r++)
    {
        for (int c = 0; c < addedMatrix[0].length; c++)
        {
            System.out.print(addedMatrix[r][c]+ " ");
        }
    
        System.out.println();
    }
    
    public static double[][] addMatrix(double[][] arr1, double[][] arr2)
    {
        double[][] addedMatrix = new double[3][3];
            
        for (int r = 0; r < addedMatrix.length; r++)
        {
            for (int c = 0; c < addedMatrix[0].length; c++)
            {
                addedMatrix[r][c] = arr1[r][c] + arr2[r][c];
            }
        }
            
        return addedMatrix;
    }
    
    1 回复  |  直到 4 年前
        1
  •  0
  •   ahtasham nazeer    4 年前

    你的语法完全错误。首先你需要一个main函数,然后你还需要接受返回类型。

    import java.util.Scanner;
    
    public class Test {
    
    
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Enter Matrix 1 : ");
        double[][] matrix1 = new double[3][3];
        for(int r = 0; r < matrix1.length; r++)
        {
            for(int c = 0; c < matrix1[0].length; c++)
            {
                matrix1[r][c] = input.nextDouble();
            }
        }
        System.out.print("Enter Matrix 2 : ");
        double[][] matrix2 = new double[3][3];
        for(int r = 0; r < matrix2.length; r++)
        {
            for(int c = 0; c < matrix2[0].length; c++)
            {
                matrix2[r][c] = input.nextDouble();
            }
        }
    
        double[][] addedMatrix = addMatrix(matrix1, matrix2);
    
        System.out.println("The matrices added are : ");
        for(int r = 0; r < addedMatrix.length; r++)
        {
            for(int c = 0; c < addedMatrix[0].length; c++)
            {
                System.out.print(addedMatrix[r][c]+ " ");
            }
            System.out.println();
        }
    }
    
    public static double[][] addMatrix(double[][] arr1, double[][] arr2)
    {
        double[][] addedMatrix = new double[3][3];
        for(int r = 0; r < addedMatrix.length; r++)
        {
            for(int c = 0; c < addedMatrix[0].length; c++)
            {
                addedMatrix[r][c] = arr1[r][c] + arr2[r][c];
            }
        }
        return addedMatrix;
    }
    }