diff --git a/随机数独题的生成.cpp b/随机数独题的生成.cpp new file mode 100644 index 0000000..a35c8b6 --- /dev/null +++ b/随机数独题的生成.cpp @@ -0,0 +1,58 @@ +#include +#include +#include +int main(){ + int *compose(int a[][9]); + int a[9][9]={0},*p,i; + p=compose(a); + for(i=1;i<=81;i++) + { + if(i%9==0) + printf("%d\n",*p); + else + printf("%d ",*p); + p++; + } + return 0; + } +int *compose(int a[][9]) +{ +int *creat(int a[]); +int i,j,k,*p1,*p2,b[9],c[9]; +for(i=0;i<=6;i=i+3) +{ + p1=creat(b); + for(j=0;j<=2;j++) + { + p2=creat(c); + for(k=1;k<=3;k++) + *(*(a+i+j)+*(p2++)-1)=*p1++; + } +} +return *a; +} +int *creat(int a[])//��������9����; +{ + void swap(int *p1,int *p2); + srand(time(NULL)); + static int n=rand(); + int *p1=a,*p2=a,i; + for(i=0;i<=8;i++) + { + a[i]=i+1; + } + for(i=8;i>=0;i--) + { srand(n); + p1=a+i;p2=a+rand()%8+1; + swap(p1,p2); + n++; + } +return a;} +void swap(int *p1,int *p2) +{ + int temp; + temp=*p2; + *p2=*p1; + *p1=temp; + } +