大炮打蚊子我的执行结果怎么是0和1呢?

img



#include <iostream>
using namespace std;
int main()
{
    int M,N,i,j,k,x,y;  
    cin>>M>>N;
    char b[20][20];//存储坐标0和#
    for(i=0;i<M;i++){
        for(j=0;j<N;j++){
            cin>>b[i][j];
        }
    }
    cin>>k;//开炮的总次数
    for(i=0;i<k;i++){
        int s=0;//打死的蚊子数目
        cin>>x>>y;//正中坐标
        if(b[x][y]=='#'){
            s++;
            b[x][y]=0;
        }
        if(x-1>=0&&x-1<M){
            if(b[x-1][y]=='#'){
                b[x-1][y]==1;
            }
            else if(b[x-1][y]==1){
                s++;
                b[x-1][y]==0;
            }
        }
        if(x+1>=0&&x+1<M){
            if(b[x+1][y]=='#'){
                b[x+1][y]==1;
            }
            else if(b[x+1][y]==1){
                s++;
                b[x+1][y]==0;
            }
        }
        if(y-1>=0&&y-1<N){
            if(b[x][y-1]=='#'){
                b[x][y-1]==1;
            }
            else if(b[x][y-1]==1){
                s++;
                b[x][y-1]==0;
            }
        }
        if(y+1>=0&&y+1<N){
            if(b[x][y+1]=='#'){
                b[x][y+1]==1;
            }
            else if(b[x][y+1]==1){
                s++;
                b[x][y+1]==0;
            }
        }
        cout<<s<<endl;
    }
        return 0;
    }

img
为什么执行出来的结果是0和1啊?求解

你在周围四个格子的判断更新里=写成==了

u