查看: 727685|回复: 8104

新人求助数独算法

[复制链接]
发表于 2016-9-21 22:29:17 | 显示全部楼层 |阅读模式
最近刚刚把标准C函数一些基础的看完,
        自己试着做了一下数独,但是问题来了
                我该用什么算法来往数组里填写数字呢?
                单纯的for 和 if 很容易造成最后的程序死循环
                (递归学的不太好,主要是弄不明白他到底是怎么实现的)
以下是代码:
[C] 纯文本查看 复制代码
#include <stdio.h>
int main(){
	int arr[9][3][3]={0};
	int x=0,y=0,z=0,q=0;
	for (x=0;x<=8;x++){
		for(y=0;y<=2;y++){
			for(z=0;z<=2;z++){
				arr[x][y][z]=x;
			}
		}
	}
	for(q=0;q<=8;q+=3){
		for(y=0;y<=2;y++){
			for(x=q;x<=q+2;x++){
				for(z=0;z<=2;z++){
					printf("%d ",arr[x][y][z]);
				}
				printf(" ");
			}
		printf("\n");
		}
		printf("\n");
	}
	return 0;
}

各位大神,求助,给个思路也行啊,我回去慢慢研究

点评

你可以启用bug模式,调试断点查看数据的运行状态。看看哪里出错。  发表于 2016-10-10 23:19
其实你可以用随机函数去实现,在填充前判断是否为需要的。最后打印就行了。百度找到:c语言随机数生成函数  发表于 2016-10-7 17:55
回复

使用道具 举报

 楼主| 发表于 2016-9-21 22:29:47 | 显示全部楼层
现在打印效果如下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-21 22:30:25 | 显示全部楼层
1 1 1 1 1  2 2 2 2 2  3 3 3 3 3  
4 4 4 4 4  5 5 5 5 5  6 6 6 6 6
7 7 7 7 7  8 8 8 8 8  9 9 9 9 9
回复 支持 反对

使用道具 举报

发表于 2016-9-21 22:39:41 | 显示全部楼层
谢谢楼主的分享
回复 支持 反对

使用道具 举报

发表于 2016-9-21 22:52:40 | 显示全部楼层
谢谢楼主的分享
回复 支持 反对

使用道具 举报

发表于 2016-9-21 23:18:47 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2016-9-21 23:34:52 | 显示全部楼层
支持,看起来还是可以的
回复 支持 反对

使用道具 举报

发表于 2016-9-21 23:50:29 | 显示全部楼层
非常感谢
回复 支持 反对

使用道具 举报

发表于 2016-9-22 04:20:13 | 显示全部楼层
支持,看起来还是可以的
回复 支持 反对

使用道具 举报

发表于 2016-9-22 05:54:07 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

旗下站点

邮箱系统

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2025-3-7 03:01 , Processed in 0.028767 second(s), 11 queries , Gzip On, MemCache On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部