该楼层疑似违规已被系统折叠隐藏此楼查看此楼
下面是正宗的九宫格(81个数字)但是仔细看会发现有错误
高手看到的话就改改在下谢谢了
#include"stdio.h"
#include"stdlib.h"
#include"conio.h"
createWindow(intleft,inttop,intwide,inthigh,inttextColor,intbackGrdColor)
{
inti,j;
textcolor(textColor);
textbackground(backGrdColor);
for(i=1;i<=high;i++)
{
for(j=1;j<=wide;j++)
{
if(i==1&&j==1)putch(201);
if(i==1&&j==wide)putch(187);
if(i==wide&&j==1)putch(200);
if(i==wide&&j==wide)putch(188);
if(i%6==1&&j%2!=1)putch(205);
if(j%6==1&&i%2!=1)putch(186);
if(i==1&&(j==7||j==13))putch(203);
if(i==wide&&(j==7||j==13))putch(202);
if(j==1&&(i==7||i==13))putch(204);
if(j==wide&&(i==7||i==13))putch(185);
if((i==7||i==13)&&(j==7||j==13))putch(206);
if(i==1&&j%6!=1&&j%2==1)putch(209);
if(i==wide&&j%6!=1&&j%2==1)putch(207);
if(j==1&&i%6!=1&&i%2==1)putch(199);
if(j==wide&&i%6!=1&&i%2==1)putch(182);
if(i%2!=1&&j%6!=1&&j%2==1)putch(179);
if(j%2!=1&&i%6!=1&&i%2==1)putch(196);
if((i==7||i==13)&&j%6!=1&&j%2==1)putch(216);
if((j==7||j==13)&&i%6!=1&&i%2==1)putch(215);
if(i%6!=1&&j%6!=1&&i%2==1&&j%2==1)putch(197);
if(i%2!=1&&j%2!=1)putch(32);
}
}
window(left+1,top+1,left+wide,top+high-1);
}
setdata(char*SDK,char*t)
{
inti,j,w,flag=9;
charr,temp,data[9]={'1','2','3','4','5','6','7','8','9'};
randomize();
for(i=0;i<=7;i++)
{
if(*(t+i)!=NULL)
{
flag--;
for(j=0;j<=8;j++)
{
if(data[j]==*(t+i))
{
temp=data[j];
data[j]=data[flag];
data[flag]=temp;
break;
}
}
}
elsebreak;
}
*SDK=(data[random(flag)]);
}
main()
{
intp,u,i,j,g,k,w;
chartemp,SuDoKu[9][9]={NULL},hang[9],lie[9],xiao[9],allelement[27];
clrscr();
window(1,1,19,20);
clrscr();
createWindow(1,1,19,19,WHITE,BLACK);
window(1,1,19,20);
for(p=0;p<=8;p++)
{
for(u=0;u<=8;u++)
{
for(i=0;i<=8;i++)
{
hang[i]=SuDoKu[p][i];
lie[i]=SuDoKu[i][u];
}
if(p>=0&&p<=2)
{
if(u>=0&&u<=2)for(j=0;j<=2;j++)for(g=0;g<=2;g++)
xiao[j*3+g]=SuDoKu[j][g];
if(u>=3&&u<=5)for(j=0;j<=2;j++)for(g=3;g<=5;g++)
xiao[j*3+g-3]=SuDoKu[j][g];
if(u>=6&&u<=8)for(j=0;j<=2;j++)for(g=6;g<=8;g++)
xiao[j*3+g-6]=SuDoKu[j][g];
}
if(p>=3&&p<=5)
{
if(u>=0&&u<=2)for(j=3;j<=5;j++)for(g=0;g<=2;g++)
xiao[j*3+g-9]=SuDoKu[j][g];
if(u>=3&&u<=5)for(j=3;j<=5;j++)for(g=3;g<=5;g++)
xiao[j*3+g-12]=SuDoKu[j][g];
if(u>=6&&u<=8)for(j=3;j<=5;j++)for(g=6;g<=8;g++)
xiao[j*3+g-15]=SuDoKu[j][g];
}
if(p>=6&&p<=8)
{
if(u>=0&&u<=2)for(j=6;j<=8;j++)for(g=0;g<=2;g++)
xiao[j*3+g-18]=SuDoKu[j][g];
if(u>=3&&u<=5)for(j=6;j<=8;j++)for(g=3;g<=5;g++)
xiao[j*3+g-21]=SuDoKu[j][g];
if(u>=6&&u<=8)for(j=6;j<=8;j++)for(g=6;g<=8;g++)
xiao[j*3+g-24]=SuDoKu[j][g];
}
for(w=0;w<=26;w++)
{
if(w<=8)allelement[w]=hang[w];
if(w>=9&&w<=17)allelement[w]=lie[w-9];
if(w>=18)allelement[w]=xiao[w-18];
}
for(w=0;w<=26;w++)
{
if(allelement[w]!=NULL)
{
for(k=0;k<=w-1;k++)
{
if(allelement[w]==allelement[k])allelement[w]=NULL;
}
}
}
for(w=26;w>=0;w--)
{
for(k=0;k<=w-1;k++)
{
if(allelement[k]==NULL&&allelement[k+1]!=NULL)
{
temp=allelement[k];
allelement[k]=allelement[k+1];
allelement[k+1]=temp;
}
}
}
setdata(&SuDoKu[p][u],allelement);
}
}
for(p=0;p<=8;p++)
{
for(u=0;u<=8;u++)
{
gotoxy(2*(u+1),2*(p+1));
cprintf("%c",SuDoKu[p][u]);
}
}
}
注意程序通过调试但是有BUG高手来挑战啊