数独解题VC++源程序

时间:2014-02-15 12:37:25
【文件属性】:

文件名称:数独解题VC++源程序

文件大小:200KB

文件格式:RAR

更新时间:2014-02-15 12:37:25

数独解题

数独解题VC++源程序,原创的。 // ccc.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include #include #include #include #include int main(int argc, char* argv[]) { int i,j,k,p,t,x,y,m,n,pn,tmpi,tmpj,na; int ia,ja,tt=1,no=0,pm; int sd[10][10][10],tmpp[10]; char ch; FILE *fp; for (i=1; i<10; i++){ for (j=1; j<10; j++){ for (k=0; k<10; k++){ sd[i][j][k]=k; } } } if( (fp = fopen( "data.sd", "r" )) == NULL ) printf( "\nThe file 'data.sd' was not opened\n" ); else { for (i=1; i<10; i++){ for (j=1; j<10; j++){ ch=fgetc(fp); sd[i][j][0]= ch-0x30; } fgetc(fp); } fclose(fp); } /* sd[1][1][0]=3; sd[1][2][0]=7; sd[1][3][0]=6; sd[2][1][0]=0; sd[2][2][0]=0; sd[2][3][0]=0; sd[3][1][0]=9; sd[3][2][0]=4; sd[3][3][0]=1; sd[4][1][0]=2; sd[9][2][0]=8; sd[5][1][0]=8; sd[1][1][0]=0; sd[1][2][0]=0; sd[1][3][0]=0; sd[1][4][0]=0; sd[1][5][0]=0; sd[1][6][0]=0; sd[1][7][0]=0; sd[1][8][0]=0; sd[1][9][0]=0; sd[2][1][0]=0; sd[2][2][0]=0; sd[2][3][0]=0; sd[2][4][0]=0; sd[2][5][0]=0; sd[2][6][0]=0; sd[2][7][0]=0; sd[2][8][0]=0; sd[2][9][0]=0; sd[3][1][0]=0; sd[3][2][0]=0; sd[3][3][0]=0; sd[3][4][0]=0; sd[3][5][0]=0; sd[3][6][0]=0; sd[3][7][0]=0; sd[3][8][0]=0; sd[3][9][0]=0; sd[4][1][0]=0; sd[4][2][0]=0; sd[4][3][0]=0; sd[4][4][0]=0; sd[4][5][0]=0; sd[4][6][0]=0; sd[4][7][0]=0; sd[4][8][0]=0; sd[4][9][0]=0; sd[5][1][0]=0; sd[5][2][0]=0; sd[5][3][0]=0; sd[5][4][0]=0; sd[5][5][0]=0; sd[5][6][0]=0; sd[5][7][0]=0; sd[5][8][0]=0; sd[5][9][0]=0; sd[6][1][0]=0; sd[6][2][0]=0; sd[6][3][0]=0; sd[6][4][0]=0; sd[6][5][0]=0; sd[6][6][0]=0; sd[6][7][0]=0; sd[6][8][0]=0; sd[6][9][0]=0; sd[7][1][0]=0; sd[7][2][0]=0; sd[7][3][0]=0; sd[7][4][0]=0; sd[7][5][0]=0; sd[7][6][0]=0; sd[7][7][0]=0; sd[7][8][0]=0; sd[7][9][0]=0; sd[8][1][0]=0; sd[8][2][0]=0; sd[8][3][0]=0; sd[8][4][0]=0; sd[8][5][0]=0; sd[8][6][0]=0; sd[8][7][0]=0; sd[8][8][0]=0; sd[8][9][0]=0; sd[9][1][0]=0; sd[9][2][0]=0; sd[9][3][0]=0; sd[9][4][0]=0; sd[9][5][0]=0; sd[9][6][0]=0; sd[9][7][0]=0; sd[9][8][0]=0; sd[9][9][0]=0; sd[1][1][0]=0; sd[1][2][0]=0; sd[1][3][0]=0; sd[1][4][0]=0; sd[1][5][0]=0; sd[1][6][0]=0; sd[1][7][0]=8; sd[1][8][0]=0; sd[1][9][0]=0; sd[2][1][0]=0; sd[2][2][0]=0; sd[2][3][0]=6; sd[2][4][0]=5; sd[2][5][0]=0; sd[2][6][0]=0; sd[2][7][0]=0; sd[2][8][0]=4; sd[2][9][0]=3; sd[3][1][0]=0; sd[3][2][0]=2; sd[3][3][0]=0; sd[3][4][0]=0; sd[3][5][0]=7; sd[3][6][0]=0; sd[3][7][0]=0; sd[3][8][0]=0; sd[3][9][0]=0; sd[4][1][0]=0; sd[4][2][0]=0; sd[4][3][0]=3; sd[4][4][0]=6; sd[4][5][0]=0; sd[4][6][0]=0; sd[4][7][0]=0; sd[4][8][0]=0; sd[4][9][0]=0; sd[5][1][0]=4; sd[5][2][0]=0; sd[5][3][0]=0; sd[5][4][0]=0; sd[5][5][0]=0; sd[5][6][0]=0; sd[5][7][0]=0; sd[5][8][0]=0; sd[5][9][0]=7; sd[6][1][0]=0; sd[6][2][0]=0; sd[6][3][0]=0; sd[6][4][0]=0; sd[6][5][0]=0; sd[6][6][0]=8; sd[6][7][0]=1; sd[6][8][0]=0; sd[6][9][0]=0; sd[7][1][0]=0; sd[7][2][0]=0; sd[7][3][0]=0; sd[7][4][0]=0; sd[7][5][0]=3; sd[7][6][0]=0; sd[7][7][0]=0; sd[7][8][0]=6; sd[7][9][0]=0; sd[8][1][0]=8; sd[8][2][0]=9; sd[8][3][0]=0; sd[8][4][0]=0; sd[8][5][0]=0; sd[8][6][0]=1; sd[8][7][0]=2; sd[8][8][0]=0; sd[8][9][0]=0; sd[9][1][0]=0; sd[9][2][0]=0; sd[9][3][0]=5; sd[9][4][0]=0; sd[9][5][0]=0; sd[9][6][0]=0; sd[9][7][0]=0; sd[9][8][0]=0; sd[9][9][0]=0; */ if( (fp = fopen( "sd.out", "w" )) == NULL ) printf( "\nThe file 'sd.out' was not opened\n" ); printf ("\n*************************************"); fprintf (fp,"\n*************************************"); for (i=1;i<10;i++){ printf ("\n"); fprintf (fp,"\n"); for (j=1;j<10;j++){ printf ("%d ",sd[i][j][0]); fprintf (fp,"%d ",sd[i][j][0]); } } printf ("\n*************************************\n"); fprintf (fp,"\n*************************************\n"); pn=0; for (i=1;i<10;i++){ for (j=1;j<10;j++){ if (sd[i][j][0]==0) { pn=pn+1; for (k=1;k<10;k++){ if (sd[i][k][0]!=0) sd[i][j][sd[i][k][0]]=0;} for (k=1;k<10;k++){ if (sd[k][j][0]!=0) sd[i][j][sd[k][j][0]]=0;} tmpi=int((i-1)/3);tmpj=int((j-1)/3); for (m=1;m<4;m++){ for(n=1;n<4;n++){ x=tmpi*3+m;y=tmpj*3+n; if (sd[x][y][0]!=0) {sd[i][j][sd[x][y][0]]=0;} } } } else {for (k=1;k<10;k++){sd[i][j][k]=0;} } } } printf ("\n****** pn=%d \n",pn); fprintf (fp,"\n****** pn=%d \n",pn); pm=pn; _getch(); while (pn!=0) { for (i=1;i<10;i++){ for (j=1;j<10;j++){ if (tt==1 && no


【文件预览】:
ccc
----StdAfx.cpp(290B)
----data.sd(99B)
----ccc.ncb(41KB)
----ccc.opt(53KB)
----Debug()
--------vc60.pdb(60KB)
--------data.sd(99B)
--------ccc.pch(277KB)
--------vc60.idb(41KB)
--------ccc.obj(15KB)
--------ccc.exe(168KB)
--------ccc.ilk(182KB)
--------data.sd.bak(99B)
--------ccc.pdb(353KB)
--------StdAfx.obj(2KB)
--------sd.out(4KB)
----ReadMe.txt(1KB)
----StdAfx.h(769B)
----ccc.dsw(529B)
----ccc.cpp(11KB)
----ccc.plg(1KB)
----复件 data.sd(97B)
----ccc.dsp(3KB)
----sd.out(30KB)

网友评论

  • 写的很详细,对我很有帮助