康威的生命游戏,计算邻居

我的代码中某处出现错误,我想我正在进入无限循环。 基本上我得到一个矩阵和两个索引,i,j,我需要计算[i] [j]周围有多少邻居的值为1或2。

这是我的代码:

int number_of_living_neighbors(matrix mat,int i, int j, int n,int m) { int counter=0,row_index=0,column_index=0; for(row_index=i-1;row_index=0)&&(row_index=0)&&(column_index<m)) { if((mat[row_index][column_index]==1)||(mat[row_index][column_index]==2)) counter++; if((row_index==i)&&(column_index==j)&&(mat[i][j]==1)) counter--; } } } printf("The number of living neighbors is %d", counter); return counter; } 

它没有打印任何东西。 mat是我得到的矩阵,i,j是指针,n是行数,m是列数。

 for(column_index = j-1 ; column_index = j+1; column_index++) 

您的条件包含作业,而不是比较。 您可能想要使用<=而不是=

 for(column_index = j-1 ; column_index <= j+1; column_index++)