2017-03-23 1 views
0

配列は0〜20の範囲の乱数で初期化されます。 配列の値が0の場合、このメソッドはその行と列のすべての値をゼロに変更する必要があります。0と交差する特定の行と特定の列のすべての値を変更する必要があります。

代わりに、配列を消去してすべての値をゼロに変更します。 考えていますか?まだここに、気に誰のための

 for (int row = 0; row < size; row++){ 
     for (int col = 0; col < size; col++){ 
      if (matrix[row][col] == 0){ 
       for (int k = 0; k < size; k++) 
        matrix[k][col] = 0; 
       for (int l = 0; l < size; l++) 
        matrix[row][l] = 0; 
      } 
     } 
    } 
    System.out.println("Result:"); 
    for (int i = 0; i < size; i++){ 
     for (int j = 0; j < size; j++) 
      System.out.printf("[%1$2s]", copy[i][j]); 
     System.out.println();  
    } 
+2

は、なぜあなたは「マトリックス」のアレイと印刷「コピー」の配列を変えているのですか?行列[] []ですべてが正しくなければならず、コピーは0で初期化された別の配列である可能性があります。 –

答えて

0

完全なコード

Random random = new Random(); 
    int[][] matrix = new int[size][size];  
    for (int i = 0; i < size; i++){ 
     for (int j = 0; j < size; j++) 
      matrix[i][j] = random.nextInt(20); 
    } 
    for (int row = 0; row < size; row++){ 
     for (int col = 0; col < size; col++){ 
      if (matrix[row][col] == 0){ 
       for (int k = 0; k < size; k++) 
        matrix[k][col] = 0; 
       for (int l = 0; l < size; l++) 
        matrix[row][l] = 0; 
      } 
     } 
    } 

    System.out.println("Result:"); 
    for (int i = 0; i < size; i++){ 
     for (int j = 0; j < size; j++) 
      System.out.printf("[%1$2s]", matrix[i][j]); 
     System.out.println();  
    } 
関連する問題