回 帖 发 新 帖 刷新版面

主题:矩阵加法程序,求助!!!!!!

出错了~出错提示:

Exceptionin thread "main" java.lang.ArrayIndexOutOfBoundsException:3
   at matrix.Plus(matrix.java.11) 
   at matrix.main(matrix.java.23)
为什么会这样呢???

import java.io.*;
public class matrix {
  static int[][] sum;
  static int[][] a={{1,2,3},{4,5,6},{7,8,9}};
  static int[][] b={{1,0,0},{0,1,0},{0,0,1}};
       
  public static void Plus(int[][]a,int[][] b){
      sum=new int[a.length][a[0].length];
      for(int i=0;i<a.length;i++)
         for(int j=0;j<a[0].length;j++)
         sum[a.length][a[0].length]=a[i][j]+b[i][j];
         }
      
  public static void Display(){
       for (int i=0;i<a.length;i++){
           for (int j = 0; j<a[0].length; j++)
            System.out.print(sum[i][j]+" ");
            }
            System.out.println (""); 
   } 
   
   public static void main(String args[]) throws IOException{
         matrix.Plus(a,b); 
         matrix.Display();
      }
}

回复列表 (共1个回复)

沙发

sum[3][3] 是第四行第四列,记住 它 是从 0 开始的

//sum[a.length][a[0].length] = a[i][j] + b[i][j];
                sum[a.length-1][a[0].length-1] = a[i][j] + b[i][j];


不过你是想这样写吧:

import java.io.*;

public class Matrix {
    static int[][] sum;

    static int[][] a = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };

    static int[][] b = { { 1, 0, 0 }, { 0, 1, 0 }, { 0, 0, 1 } };

    public static void Plus(int[][] a, int[][] b) {
        sum = new int[a.length][a[0].length];
        for (int i = 0; i < a.length; i++)
            for (int j = 0; j < a[0].length; j++)
                //sum[a.length][a[0].length] = a[i][j] + b[i][j];
                //sum[a.length-1][a[0].length-1] = a[i][j] + b[i][j];
                sum[i][j] = a[i][j] + b[i][j];
    }

    public static void Display() {
        for (int i = 0; i < a.length; i++) {
            //-------------------------
            for (int j = 0; j < a[0].length; j++){
                System.out.print(sum[i][j] + " ");
            }
            System.out.println("");
            //------------------------
                
        }
    }

    public static void main(String args[]) throws IOException {
        Matrix.Plus(a, b);
        Matrix.Display();
    }
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册