2017-04-06 133 views
-1

我有一個二維整數數組和一個二維雙數組。如果double數組中的值小於二維數組中相同位置處的整數值,那麼在該布爾數組的該部分中,值將是true。如果它更大,那麼布爾值將是false從兩個其他數組創建二維布爾數組

我該怎麼辦呢?

這是我試過到目前爲止:

public static boolean[][] CompareIntDouble(int[][] pizza, double[][] pasta) { 
    boolean x = true; 

    for (int hotdog=0; hotdog < pizza.length; hotdog++) { 
     for (int toast=0; toast < pizza[hotdog].length; toast++) { 
      pizza[hotdog][toast] = hotdog * 10 + toast; 

      if (pasta[1][1] > pizza[1][1]) { 
       x = true; 
      } else { 
       x = false; 
      } 

      if (pasta[1][2] > pizza[1][2]) { 
       x = true; 
      } else { 
       x = false 
      } 
     } 
    } 
} 

Picture of the code

+4

你自己試過,如果是,請顯示你的代碼。 – Omore

+0

將標題更新爲更具描述性,修改文字更加精確,減少拼寫錯誤,並將圖片中的代碼複製到問題中,以便於閱讀和複製。 – Jens

回答

0
public static void main(String... args) throws IOException { 
    int[][] t1 = new int[2][2]; 
    t1[0][0] = 0; 
    t1[0][1] = 1; 
    t1[1][0] = 2; 
    t1[1][1] = 3; 

    double[][] t2 = new double[2][2]; 
    t2[0][0] = 3; 
    t2[0][1] = 2; 
    t2[1][0] = 1; 
    t2[1][1] = 0; 

    boolean[][] f = new boolean[2][2]; 

    for (int i = 0; i < 2; i++) { 
     for (int j = 0; j < 2; j++) { 
      if (t1[i][j] > t2[i][j]) { 
       f[i][j] = true; 
      } else { 
       f[i][j] = false; 
      } 
      System.out.println(i+" "+j+" :"+f[i][j]); 
     } 
    } 
} 

即使壽你應該自己嘗試一下先在這裏你有一個工作的例子

0

假設2D輸入陣列具有相同的尺寸

public static boolean[][] foo(int[][] a,double[][]b) { 
    boolean[][] c = new boolean[a.length][a.length]; 

    for (int i=0;i<a[0].length ;i++) { 
     for (int j=0;j<a.length ;j++) { 
      c[i][j]= (a[i][j]>(int)b[i][j]); 
     } 
     } 
    return c; 
    } 
+0

也許只是一些拼寫錯誤,但不應該'b [i] [j] =(a [i] [j]> Integer.parseInt(b [i] [j]))'''c [i] [j ] =(a [i] [j]> Integer.parseInt(b [i] [j]));'?你的代碼根本就不起作用,因爲你不能使用'Integer.parseInt'來實現雙值 – XtremeBaumer

+0

現在它應該可以正常工作,但是在進行匹配之前,你必須將double加到int上。 也是的,有一個語法錯誤,謝謝指出。 – Thecave3