C二维数组结构比较问题

时间:2012-02-25 07:42:40

标签: c struct comparison conways-game-of-life

这是我的第二次C任务,我们被告知要重新创建Conway的生命游戏版本。我正在使用struc(typedef)来保存我创建的网格的2d数组:

typedef int TableType[HEIGHT][WIDTH];

高度& WIDTH是#define常量。

我正在尝试使用下面的函数来比较2个表。出现以下错误(无论我尝试和比较值的方式):

error: expected expression before '==' token


int compareTables (TableType tableA, TableType tableB){
    int height, width;
    for (height = 0; height < HEIGHT; height++) {
        for (width = 0; width < WIDTH; width++) {
        if(tableA[height][width]) == tableB[height][width])
        return LIFE_NO;
        }
    }
    return LIFE_YES;
}

我使用Code-Blocks作为我的编译器,似乎找不到让gccx工作的方法。所以,据我所知,'stdio.h'是我唯一可以使用的库。

我尝试导入指针并使用 - &gt;操纵那些指针。运算符来获取要比较的值无济于事。 我也使用类似的方法来复制表,似乎编译得很好。

有什么建议吗? 请温柔我是个不错的人。

提前致谢。

2 个答案:

答案 0 :(得分:0)

if(tableA[height][width]) == tableB[height][width])

应该是

if(tableA[height][width] == tableB[height][width])

答案 1 :(得分:0)

你应该这样做

   if(tableA[height][width] == tableB[height][width]) 

      if(tableA[height][width]) == tableB[height][width])

你的功能应该是:

int compareTables (TableType tableA, TableType tableB)
{
    int height, width;
    for (height = 0; height < HEIGHT; height++) {
        for (width = 0; width < WIDTH; width++) {
            if(tableA[height][width] == tableB[height][width])
                return LIFE_NO;
        }
    }
    return LIFE_YES;
}