为什么这个代码错了
#include<bits/stdc++.h>
#define int unsigned short
using namespace std;
int a[10][10],b[10][10];
bool f[10][10],l[10][10],g[4][4][10];
void bai(int x,int y){
if(x==9&&y==9) return ;
else if(x==9) {
x=1;y++;
}
for(int i=1;i<10;i++){
if(!f[y][i]&&!l[x][i]&&!g[x/3+1][y/3+1][i]){
f[y][i]==1;
l[x][i]==1;
g[x/3+1][y/3+1][i]==1;
b[x][y]==i;
bai(x+1,y);
f[y][i]==0;
l[x][i]==0;
g[x/3+1][y/3+1][i]==0;
}
}
}
signed main(){
for(int i=1;i<=9;i++){
for(int j=1;j<=9;j++){
cin>>a[i][j];
}
}
bai(1,1);
for(int i=1;i<=9;i++){
for(int j=1;j<=9;j++){
cout<<b[i][j];
}
cout<<endl;
}
return 0;
}