数独数组生成
#define MAX_TIMES 100#define ARR_SIZE 9#define MAX_NUM 10void createNumArr(int arr){int i = 0;int j = 0;int k = 0;int tmp = 0;int flag = 0;int times = 0;srand(time(NULL));do{times= 0;for (i = 0; i < ARR_SIZE; i++){for (j = 0; j < ARR_SIZE; j++){do{flag = 0;tmp = rand() % MAX_NUM;times++;if (0 == tmp){flag = 1;}for (k = 0; (k < j) && (flag != 1); k++){if (tmp == arr){flag = 1;break;}}for (k = 0; (k < i) && (flag != 1); k++){if (tmp == arr){flag = 1;break;}}if (times > MAX_TIMES){break;//jump out inner do-while}}while (flag);if (times > MAX_TIMES){break;//jump out inner for circle}arr = tmp;times = 0;//printf("arr[%d][%d]=%d\n", i, j, tmp);}if (times > MAX_TIMES){break;//jump out outter for circle}}}while (times > MAX_TIMES);}int isSodoArr(int arr){int i = 0;int j = 0;for (i = 0; i < ARR_SIZE; i++){for (j = 0; j < ARR_SIZE; j++){//do something}}return 1;}
页:
[1]