设置int [index] = matrix [index] [otherindex]

时间:2016-12-11 23:37:53

标签: java matrix

    int[] array = new int[9];
    int[][] matrix = {  {0,1,2},
                        {3,4,5},
                        {6,7,8}};
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            array[i+j] = matrix[i][i];
        }
    }
    for (int i = 0; i < array.length; i++) {
        System.out.println(array[i]);
    }

所以我希望数组设置为{0,1,2,3,4,5,6,7,8,9},但输出是

00 01 02 43 44 45 86 87 88 

这只是解决soduku难题的一个侧面项目,但这个问题一直困扰着我。我经常试图找到解决这个问题的方法,但我已经达到了我想知道为什么不起作用的地步。

2 个答案:

答案 0 :(得分:3)

我不知道你是如何获得输出的,这不是你的代码所给出的。总之...

你不想要array[i+j],因为它会给你0到4的值,带有重复。您想迭代array的每个元素,因此请使用array[i*3 + j]。此外,您不希望matrix[i][i],而是matrix[i][j],但我认为这只是一个错字。

答案 1 :(得分:0)

 int index = 0;
  for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
      array[index] = matrix[i][j];
      index++;
    }
  }