-1

我的代码有问题。此代码的目的是计算邻居数并根据选项修改数组。经过多次测试,我观察到请求 : nbVoisins = nb_voisins_M(tab, i, j, n, m);(who couting 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;
                }
            }
        }
    }
}
4

1 回答 1

4

如果我有一个镍...

if(nbVoisins == b)

因为,

 if(nbVoisins = b)

将赋值bto nbVoisins,然后检查是否nbVoisins等于 0,它不会比较 bnbVoisins是否相等。

体面的编译器应该为此发出警告,因此请注意警告 - 它应该被列出。

于 2013-02-07T19:32:17.557 回答