|
|
2 years ago | |
|---|---|---|
| README.md | 2 years ago | |
README.md
#include <stdio.h> #include <time.h> #include <stdlib.h> int main() { int board[9][9] = {{8, 3, 0, 0, 7, 0, 0, 0, 0}, {6, 0, 0, 1, 9, 5, 0, 0, 0}, {0, 9, 8, 0, 0, 0, 0, 6, 0}, {0, 0, 0, 0, 6, 0, 0, 0, 3}, {4, 0, 0, 8, 0, 3, 0, 0, 1}, {7, 0, 0, 0, 2, 0, 0, 0, 6}, {0, 6, 0, 0, 0, 0, 2, 8, 0}, {0, 0, 0, 4, 1, 9, 0, 0, 5}, {0, 0, 0, 0, 8, 0, 0, 7, 9}}; //这个位置加下original matrix的格式输出 ,变量i,j可用 printf("The original Sudoku matrix:\n"); printf("|"); for(int i=0;i<23;i++) { printf("-"); } printf("|"); printf("\n"); for(int i=0;i<9;i++) { printf("| "); for(int j=0;j<9;j++) { printf("%d ",board[i][j]); if(j==2||j==5||j==8) { printf("| "); } } printf("\n"); if((i+1)%3==0&&i!=0) { printf("| "); for(int k=1;k<23;k++) { printf("-"); } printf("|"); printf("\n"); } }
int a[10],b[10],c[10];
int i,j,d,f=1,p,q,m,x,y,z;
for(i=0;i<9;i++)
{
for(j=0;j<10;j++)
{
a[j]=0;
}
for(j=0;j<9;j++)
{
d=board[j][i];
a[d-1]++;
if(a[d-1]>=2&&d-1!=-1)
{
f=0;
x=d;
y=i;
z=1;
}
}
}
for(i=0;i<9;i++)
{
for(j=0;j<10;j++)
{
a[j]=0;
}
for(j=0;j<9;j++)
{
d=board[i][j];
a[d-1]++;
if(a[d-1]>=2&&d-1!=-1)
{
f=0;x=d;y=i;z=2;
}
}
}
for (p=0;p<3;p++)
{
for(q=0;q<3;q++)
{
for(m=0;m<10;m++)
{
a[m]=0;
}
for (i=3*p;i<3*p+3;i++)
{
for(j=3*q;j<3*q+3;j++)
{
d=board[i][j];
a[d-1]++;
if(a[d-1]>=2&&d-1!=-1)
{
f=0;x=d;y=3*p+q+1;z=3;
}
}
}
}
}
if(f==1) printf("True:Valid initial Sudoku matrix!");
else printf("False:Invalid initial Sudoku matrix!\n");
if(z==1) printf("The number %d in the line %d has been used!",x,y);
else if(z==2) printf("The number %d in the col %d has been used!",x,y);
else if(z==3) printf("The number %d in the block %d has been used!",x,y);
return 0;
}