2014-04-06 113 views
0

在java中编写一个程序,它读取两个3乘3矩阵并找出它们的总和和显示结果?2D阵列中3x3的总和

我试过,但我得到运行时错误

Scanner r=new Scanner(System.in); 
    int [][]array = null; 
    int[][]array2 = null; 
    int total=0; 
    System.out.println("Enter matrix"); 
    for(int row=0;row<array.length;row++){ 
     for(int col=0;col<array[row].length;col++){ 
      array[row][col]=r.nextInt(); 

      array[row][col]=r.nextInt() 

;

System.out.print(" "+total +" "); 

     total=array[row][col]+array2[row][col]; 
     System.out.println(" "); 
+0

只是在黑暗中拍摄一张野性照片,但是您应该做到这一点,以免发生任何运行时错误。随意问你是否遇到麻烦,但解决一个特定的错误。 – guest

+1

你应该在打印之前计算总计 – Sumedh

+0

我认为你需要获得所有的输入并存储它,然后再开始添加。否则,你的输出将与你的输入混杂在一起。所以你必须遍历数组两次 - 一次是收集输入,一次是计算和打印输出。 –

回答

0

第一个FOR-Loop演示了如何在数组中输入值。该代码将要求用户同时输入两个数组的值。

第二个FOR-Loop演示了如何总结每个数组的值。之后,两个阵列被添加在一起。

//Since you know the the array will be 3x3, 
    //declare it! 
    int[][] array1 = new int[3][3]; 
    int[][] array2 = new int[3][3]; 

    int array1Total = 0; 
    int array2Total = 0; 
    int endResult; 

    for (int x = 0; x < array1.length; x++) { 

     for (int y = 0; y < array1[x].length; y++) { 

      array1[x][y] = r.nextInt(); 
      array2[x][y] = r.nextInt(); 

     } 
    } 

    for (int x = 0; x < array1.length; x++) { 

     for (int y = 0; y < array1[x].length; y++) { 

      array1Total += array1[x][y]; 
      array2Total += array2[x][y]; 

     } 
    } 

    endResult = array1Total + array2Total; 
+0

我不认为这是什么雷姆意味着两个矩阵的总和。 –

+0

是的,这是正确的谢谢你 – Reem

2

您还没有分配的数组引用任何记忆,它们在引用没有(空)... 尝试:

int[][] array = new int[3][3]; 
int[][] array2 = new int[3][3]; 

而且,你缺少在第9行分号你的code.Also,在同一行,我相信它应该是array2 &不是数组。

+0

好吧,不要错过分号,但它已经到了下一行.... – Sumedh