2014-04-06 144 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