2016-12-16 91 views
-2

問:編寫一個方法,它接受一個int二維數組 ,它隨機填充0和1,並打印出有多少個0和1。 以下是我的代碼,我不知道如何解決這個..如何使隨機填充0和1的int 2D數組?

import java.util.Random; 


public class Randomfilled { 

    public static void main(String[] args) { 
     int[][] arry = new int[3][4]; 
     arrays(arry); 
    } 

    public static void arrays(int[][] arry) { 

     Random n = new Random(); 
     int z = 0; 
     int x = 0; 
     for (int i = 0; i < arry.length; i++) { 
      for (int j = 0; j < arry[0].length; j++) { 
       arry[i][j] = Math.abs(n % 2); 

       if (arry[i][j] == 0) { 
        z++; 
       } 
       if (arry[i][j] == 1) { 
        x++; 
       } 
      } 

     } 
    } 
} 
+3

什麼需要修復?請描述您的代碼的理想和實際結果。 _「尋求調試幫助的問題(」爲什麼這個代碼不工作?「)必須包含所需的行爲,特定的問題或錯誤以及在問題本身中重現問題所需的最短代碼。」_ –

+1

'Math.abs( n%2)'應該是'n.nextInt(2)' – 4castle

+1

你可以使用'arry [i] [j] = n.nextBoolean()? 1:0;'。但你的指示說「需要一個隨機填充0和1的int 2D數組」。我相信你應該在調用方法之前填充數組。 –

回答

0

陣列數據插入錯誤!

 for (int i = 0; i < arry.length; i++) { 
     for (int j = 0; j < arry[0].length; j++) { 
      arry[i][j] = n.nextInt(2);//Change 

      if (arry[i][j] == 0) { 
       z++; 
      } 
      if (arry[i][j] == 1) { 
       x++; 
      } 

     }