2014-09-25 41 views
0

我正在尝试将矩阵的细分映射到数组。 通过细分矩阵,我的意思是像9x9数独矩阵中的3x3框这样的盒子。将矩阵的细分映射到矢量

为此我使用:

grid[x][y] = box[x/3 + (y/3)*3]; 

但它不工作,任何sugesstion一个解决方案,为什么它不工作的解释?

编辑: 我知道如何将矢量映射到矩阵。 我想将矢量映射到正方形矩阵的一部分,就像在数独游戏中一样。

EDIT2: Bassicaly我想是能够一个信箱号例如用3×框和一个9x9的矩阵 (0,0)=> 1 (0,1)=映射到一个元组, > 1 (8,8)=> 9

回答

1

更新应答以EDIT2:

如果你想像的映射:

1 2 3 
4 5 6 
7 8 9 

那么你原来的代码几乎是想你想(只需添加1):

for (int y = 0; y < 9; ++y) 
{ 
    for (int x = 0; x < 9; ++x) 
    { 
     int index = x/3 + (y/3) * 3 + 1; 
     printf("%d ", index); 
    } 
    printf("\n"); 
} 

,输出:

1 1 1 2 2 2 3 3 3 
1 1 1 2 2 2 3 3 3 
1 1 1 2 2 2 3 3 3 
4 4 4 5 5 5 6 6 6 
4 4 4 5 5 5 6 6 6 
4 4 4 5 5 5 6 6 6 
7 7 7 8 8 8 9 9 9 
7 7 7 8 8 8 9 9 9 
7 7 7 8 8 8 9 9 9 
+0

我的问题是不明确的,我会更新 – maazza 2014-09-25 12:16:02

+0

奇怪我测试你的代码,它的工作原理但不知何故,我从一开始就是对的,谢谢你,我应该调查其他地方:) – maazza 2014-09-25 12:53:47