【文件属性】:
文件名称:数独解题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)