在数组C中查找元素

时间:2015-02-18 13:21:54

标签: c arrays struct

我在找到阵列上的元素时遇到了麻烦。

我有一个元素的二维数组t_elem **array

对于数组的大小,我使用了带有#define SIZE_X 45#define SIZE_Y 35的malloc函数。似乎没有任何问题与malloc

struct elem:

typedef struct elem
{

    int choice; 
    int color;

}t_elem;
如果选择了元素,

choice应该是布尔值:1,如果不是,则0

我将所有元素初始化为0array[3][17]除外(第3列和第17行)

当我想访问选择的元素时,我使用以下代码:

array[3][17].choice = 1;  

while(array[i][j].choice != 1 && i < SIZE_X && j < SIZE_Y)
{
    i++;
    j++;
}
printf("%d %d\n",i,j);

我希望printf()返回3 17,但我得到的只是35 35

我在C中表现不佳,我可能会遗漏一些明显的东西。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

问题是,您在每次迭代中都会递增ij。这只会给你像

这样的元素
array[0][0]
array[1][1]
array[2][2]
...

这里需要的是一个嵌套循环。

示例pesudocode:

for (i = 0; i < SIZE_X; i++)
    for (j = 0; j < SIZE_Y; j++)    //for a particular value of i, traverse all values of j
    {
         if (array[i][j].choice == 1)
             printf("%d %d\n",i,j);
    }
相关问题