-
图文榜单
- 1.
电脑玩象棋旋风6
- 2.
玩数独有什么技巧
- 3.
国际象棋的走法
- 4.
跑得快可不可以三个三个连的直接出完
- 5.
QQ游戏中五子棋中的无禁手是什么请详解!
- 6.
四条腿的动物跑得快还是两条腿的动物跑得快
- 7.
谁能帮我把我的国际象棋排下位
- 8.
史上windows纸牌最高分是多少
C语言编写一个33数独保证每行每列的和都相等!各位大神了
整理:yaobaiwang.com 时间:08月03日
[助高手一个C语言五子棋的代码]C语言简单的五子棋:/* 程序中用到的库函数所在头文件应用 #include 命令包含进来 */ #include#include#include#include#include/*****************************************...+阅读
C语言编写一个3 3数独保证每行每列的和都相等!各位大神了
/*
因为你说是数独 可是你只表述了行列相等,如果是数独应该对角线相加也相等,所以我写了两个判断函数,judge1为对角线也相等的情况,judge为你描述的行列和相等(情况太多了)
结题方案只需要做一次dfs就可以了,还需要配合一个栈来存储dfs的路径,将每个符合条件的路径做一次行列和是否相等的判断 然后输出就是要的结果!
*/
#include
#include
#include
//stack
int a[9]={0};//a[0]--a[0][0] a[1]--a[0][1] and so on simulate stack
int len=0;
//dfs
int visited[10]={0};
bool judge()//行列相等
{
int i,j;
int tmp[6]={0};
for(i=0;i<3;i++)
for(j=0;j<3;j++)
tmp[i]+=a[3*i+j];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
tmp[3+i]+=a[i+3*j];
int jud=tmp[0];
for(i=1;i<6;i++)
{
if(jud!=tmp[i])
return false;
}
return true;
}
bool judge1()//行列相等 对角线也相等
{
int i,j;
int tmp[8]={0};
for(i=0;i<3;i++)
for(j=0;j<3;j++)
tmp[i]+=a[3*i+j];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
tmp[3+i]+=a[i+3*j];
tmp[7]=a[0]+a[4]+a[8];
tmp[6]=a[2]+a[4]+a[6];
int jud=tmp[0];
for(i=1;i<8;i++)
{
if(jud!=tmp[i])
return false;
}
return true;
}
void printa()
{
int t,p;
for(t=0;t<3;t++)
{
for(p=0;p<3;p++)
{
printf("%d ",a[3*t+p]);
}
printf("\n");
}
}
void dfs(int i,int v[])
{
if(i==10)//find one solution
{
if(judge1())//给你写了两个判断函数 如果对角线也相等那么用judge1()即可判断
printa();
return;
}
int j;
for(j=1;j<=9;j++)
{
int tmp[10];
memcpy(tmp,v,10*sizeof(int));
if(tmp[j]==0)
{
tmp[j]=1;
a[len++]=j;
//printf("%d %d\n",len-1,a[len-1]);
dfs(i+1,tmp);
len--;
}
}
}
int main(void)
{
dfs(1,visited);
return 0;
}
怎么用C语言写数独程序
C 语言数独解题程式原始码动机 要如何写个能解数独的程式呢? 随著数独的风行,程式设计的老师常常以此为题,要学生写个解题的程式。 自数独乐园开张以来,要提供原始码的要就不曾断过。 帮还是不帮好呢?帮了,好像在作弊,不帮又好像敝帚自珍,所以乾脆公开算了! 当然也有些人并不是为了写作业,而是为了研究数独,才提出此要。这时如果能有个范例,提供一个初步的架构, 接下去的工作就简单多了。 程式不使用任何技巧,完全采试误法,有人会说:这样做需要很长时间的试误吧!程式的执行可以给你解答。 请编辑后,在命令列中将单列格式数独放在参数中,只要有解,一定可获得解答;如果是多重解,只解出一解就会停止。 例: sudoku 802609051000800600000000049050200008008563900900007030530000000001008000480705203 C 语言原始码 #include#includeint sudoku[81] ; // 数独题目阵列 int tempNum[81] ; // 上一次填数位置 int tempSp= 0 ; // 上一次填数位置指标 int startH[81] ; // 列位置的起点 int startV[81] ; // 行位置的起点 int startB[81] ; // 九宫格位置的起点 int addH[9] ; // 列位置的加值 int addV[9] ; // 行位置的加值 int addB[9] ; // 九宫格位置的加值 int main(int argc, char *argv[]) { int j ; if(argc>1) for(j=0; j
用C语言编一个解九宫格数独的程序
前两天刚写完,还没优化,已运行通过了. 晕,一维的好麻烦,这个也是碰巧前两天刚写好的,你看着自己修改下 #includetypedef struct { int line; int row; int num; }Node; int main() { /* int a[9][9]={ {4,0,3,6,0,0,0,0,0}, {0,0,0,0,0,1,0,2,4}, {0,1,0,0,4,0,5,0,0}, {0,0,0,9,0,4,0,6,0}, {3,0,2,0,0,0,4,0,9}, {0,7,4,1,0,3,0,0,0}, {0,0,1,0,9,0,0,4,0}, {2,4,0,3,0,0,0,0,0}, {0,0,0,4,0,8,2,0,7}}; */ int a[9][9]={ {0,0,0,8,0,0,0,6,0}, {8,7,0,0,0,0,0,0,0}, {2,9,0,0,4,1,0,0,5}, {0,0,5,7,0,0,0,0,9}, {0,2,0,0,0,0,0,1,0}, {9,0,0,0,0,4,3,0,0}, {7,0,0,6,1,0,0,9,8}, {0,0,0,0,0,0,0,5,2}, {0,6,0,0,0,9,0,0,0}}; /* int a[9][9]={ {0,2,0,0,6,0,0,0,0}, {0,9,0,4,0,5,1,3,0}, {0,0,8,7,0,0,0,0,5}, {6,0,0,3,0,0,4,0,0}, {0,0,0,9,0,6,0,0,0}, {0,0,7,0,0,1,0,0,3}, {4,0,0,0,0,7,3,0,0}, {0,8,5,2,0,4,0,7,0}, {0,0,0,0,9,0,0,1,0}}; */ /* int a[9][9]={ {0,0,3,0,2,0,0,0,6}, {0,0,2,0,9,0,0,0,4}, {7,0,0,8,0,0,2,0,3}, {0,8,0,0,7,0,5,0,0}, {0,7,0,1,0,6,0,3,0}, {0,0,0,2,0,0,0,9,0}, {4,0,6,0,0,8,0,0,5}, {6,0,0,0,4,0,3,0,0}, {9,0,0,0,1,0,7,0,0}}; */ int i,j,n,en,flag,y,k=0,x,qu,p,q; Node b[70]; for(i=0;i
以下为关联内容:
一个五子棋人机对战c语言算法主要是电脑不知道怎么下棋设计的用C语言在linux下编写一个五子棋程序!objectMainextendsApp{ varreverse_pairs = 0//逆序数 defmsort[T](cmp:(T, T) =>Boolean)(l:List[T]):List[T] = { defmerge(l1:List[T...
一个c语言不用c编的五子棋程序用C语言在linux下编写一个五子棋程序!#include#include#include#include#include#include#define SHURU 1#define FANGXIANG 2#define WUXIAO 0#define TUICHU 3/***********...
用简单的java语言编写五子棋有关五子棋的程序设计问题好的追加:import java.applet.*; import java.awt.*; import java.awt.event.*; import java.applet.applet; import java.awt.color; public class...
用C语言怎么解数独用C语言解一个简单sudoku数独的程序:#include #define SIZE 9 #define get_low_bit(x) ((~x&(x-1))+1) struct{ int left; char num; char try; }board[SIZE][SIZE]; int bit...
请教一道数独题本人最近做了一道数独题算到只剩几个数字了做了数独技巧解?320 160 548 108 405 390 050 308 170 831 506 420 500 X4Y 813 042 813 650 080 931 265 293 654 781 615 X8X 934 为方便讲解看上图,标有X的三个空格处候选数是2...
c语言俄罗斯方块代码俄罗斯方块c代码急在线等能运行的:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46...
如何用C编写简单的数独程序用java写一个数独游戏:写了个C语言的,供楼主参考:难度可以通过int leave[3]={45,54,63};调整/*****************************************************************************...
谁能编一个解决九宫数独的程序用C语言编程数独字谜游戏9 9正方形:#include typedef struct { int line; int row; int num; }Node; int main() { /* int a[9][9]={ {4,0,3,6,0,0,0,0,0}, {0,0,0,0,0,1,0,2,4}, {0...
用C语言解一个简单sudoku数独的程序一个数独游戏的matlab编程:void readGame (sudukoGrid game) { cell currentCell = 0; int inChar = getchar(); while (inChar != EOF) { if ( ((inChar >= MIN_VALUE) & (i...