我的代码存在问题。此代码的目的是计算邻居并根据选项修改数组。
经过多次测试后,我观察到请求:nbVoisins = nb_voisins_M(tab, i, j, n, m);
(谁在兜售neightbors)和if(nbVoisins = b)
之后的行没有相同的值;我不明白为什么......
int i, j, k, nbVoisins; int b = 0;int s = 0;
for(i=0; i<n; i++)
{
for(j=0; j<m; j++)
{
nbVoisins = nb_voisins_M(tab, i, j, n, m);
if(tab[i][j]==1)
{
for(k=0; k<9; k++)
{
if(S[k]==1)
{
s = k+1;
//printf("tab[%d][%d] : nbVoisins = %d et s = %d \n",i,j,nbVoisins,s);
if(nbVoisins == s)
{
tab2[i][j]=1;
printf("= %d",tab2[i][j]);
}
else
{
tab2[i][j]=0;
}
}
}
}
else
{
for(k=0; k<9; k++)
{
if(B[k]==1)
{
b = k+1;
}
if(nbVoisins == b)
{
tab2[i][j]=1;
}
}
}
}
}
答案 0 :(得分:4)
如果我有镍......
if(nbVoisins == b)
由于,
if(nbVoisins = b)
会将b
的值分配给nbVoisins
,然后会检查nbVoisins
是否等于0,它不会比较 {{1}和b
表示平等。
体面的编译器应raise a warning为此,所以要注意警告 - 它应该列出。