C - 具有不同值的变量

时间:2013-02-07 19:31:15

标签: c

我的代码存在问题。此代码的目的是计算邻居并根据选项修改数组。 经过多次测试后,我观察到请求: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;
                }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:4)

如果我有镍......

if(nbVoisins == b)

由于,

 if(nbVoisins = b)

会将b的值分配给nbVoisins,然后会检查nbVoisins是否等于0,它不会比较 {{1}和b表示平等。

体面的编译器应raise a warning为此,所以要注意警告 - 它应该列出。