2017-04-06 121 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