?? shudu.c
字號:
#include<stdio.h>
int resouce[9][9]={
/* 0,0,0, 0,4,0, 7,2,0,
0,4,0, 5,0,0, 9,0,0,
5,0,0, 0,0,0, 1,4,0,
0,0,0, 3,0,6, 0,0,2,
0,5,0, 7,0,0, 8,0,0,
0,0,4, 9,0,2, 0,0,0,
6,3,0, 0,0,5, 0,0,4,
0,1,9, 0,6,0, 0,3,0,
0,0,0, 0,3,0, 0,0,7
*/0,0,6, 7,0,4, 8,3,0,
0,0,0, 5,0,3, 2,0,4,
0,0,4, 8,0,0, 0,7,0,
0,0,0, 4,8,0, 3,9,7,
0,4,0, 9,7,2, 0,0,8,
7,9,8, 3,0,5, 4,0,0,
4,6,9, 2,5,7, 1,8,3,
0,5,0, 0,3,8, 0,4,0,
0,0,0, 0,4,9, 0,0,0
};
int check(void);
int check_q(void);
void disp(void);
int i=0,j=0,flag=0;
int r[9][9];
char m;
main()
{ int k;
for(i=0;i<9;i++)
for(j=0;j<9;j++)
r[i][j]=resouce[i][j];
printf("question:\n");
disp();
if(check_q==1)
{printf("question is wrong\n");}
else
{
for(i=0;i<9;i++)
for(j=0;j<9;j++)
{
if(resouce[i][j]!=0)
continue;
else
{
r[i][j]++;
if(r[i][j]!=10)
{
if(check()==1)
j--;
else;
}
else
{
r[i][j]=0;
do
{ if(j==0)
{i--;j=8;}
else j--;
if(i<0)
{flag=1;i=100;j=100;break;}
}
while(resouce[i][j]!=0);
j--;
}
}
}
if(flag==1)
printf("there is no solution\n");
else
{printf("solution:\n");
disp();}
}
}
int check_q(void)
{for(i=0;i<9;i++)
for(j=0;j<9;j++)
if((r[i][j]!=0)&&(check==1))
return 1;
return 0;
}
int check(void)
{
int row,col,x,y;
x=(i/3)*3;
y=(j/3)*3;
for(col=0;col<j;col++)
if(r[i][j]==r[i][col]) return 1;
for(col=j+1;col<9;col++)
if(r[i][j]==r[i][col]) return 1;
for(row=0;row<i;row++)
if(r[i][j]==r[row][j]) return 1;
for(row=i+1;row<9;row++)
if(r[i][j]==r[row][j]) return 1;
for(row=x;row<x+3;row++)
for(col=y;col<y+3;col++)
{
if((row!=i)|(col!=j))
{if(r[i][j]==r[row][col])
return 1;
else ;
}
else continue;
}
return 0;
}
void disp(void)
{int i1=0,j1=0;
for(i1=0;i1<9;i1++)
for(j1=0;j1<9;j1++)
{printf("%d ",r[i1][j1]);
if(j1%3==2)
printf(" ");
if(j1==8)
printf("\n");
if((i1%3==2)&&(j1==8))
printf("\n");
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -