将下面程序改成运行后需要输入起始位置(第N行第M列)然后输出结果。

#include

#include

enum Status {TRUE,FALSE}; //枚举状态

int matrix[

将下面程序改成运行后需要输入起始位置(第N行第M列)然后输出结果。

#include

#include

enum Status {TRUE,FALSE}; //枚举状态

int matrix[8][8]; //2位矩阵

int a[8],b[15],c[15]; //按行设置标志位

int count; //统计个数

//初始化函数

void init()

{

for(int i=0;i<8;i++){

for(int j=0;j<8;j++)

matrix[i][j]=0; //矩阵置0

a[i]=-1; //标志位置-1

}

for(i=0;i<15;i++)

b[i]=c[i]=0; //标志位置0

count=0; //统计个数置0

}

//矩阵输出

void show(){

printf("\n");

for(int i=0;i<8;i++){

for(int j=0;j<8;j++)

printf("%d ",matrix[i][j]);

printf("\n");

}

}

//判断是否可以放置,TRUE可以;FALSE不可以

Status isAvailable(int row,int column){

if(a[column]!=-1||b[row+column]==1||c[7-(column-row)]==1)//当前列被放置,或者该列所在的行和所在列存在放置,不可以放置

return FALSE;

for(int i=0;i<8;i++)

if(a[i]==row) //当前列为行号,不可以放置

return FALSE;

return TRUE;

}

//重置矩阵所在行和列,进行局部清零

void reset(int row,int column){

matrix[row][column]=b[row+column]=c[7-(column-row)]=0;

a[column]=-1;

}

//如果可以放置,置所在的坐标位置为1

void set(int row,int column){

matrix[row][column]=b[row+column]=c[7-(column-row)]=1;

a[column]=row;

}

//对当前行的各个列进行递归调用,寻找放置位置

void recurse(int row,int column){

int nextcolumn=column+1;

for(int i=0;i<8;i++){

if(isAvailable(i,nextcolumn)==TRUE){//如果能放置

set(i,nextcolumn); //置1代表放置成功

if(nextcolumn==7){

show();

count++;

}

recurse(i,nextcolumn);

reset(i,nextcolumn);

}

}

}

int main(){

init();

for(int i=6;i<7;i++){

// matrix[row][column]=b[row+column]=c[7-(column-row)]=1;

matrix[5][6]=b[5+6]=c[7-(6-5)]=1;

if(isAvailable(i,0)==TRUE){

set(i,0);

recurse(i,0);

reset(i,0);

}

}

printf("\n一共有%d个解\n",count);

return 0;

}

展开

全部

八皇后非递归算法c语言,要求;编写实现八皇后问题的递归解法或非递归解法,对于任意给定的一? 爱问知识人...相关推荐

  1. c语言编写考试程序,c语言考试编写三个程序:1.从键盘输入一些字符,逐个把它们送到磁? 爱问知识人...

    下面三段程序代码都是我在VC6.0编译器上调试通过的.请给分 //test1-2.c #include #include int main() { FILE *fp = fopen("fil ...

  2. 饭店菜单选择c语言,求C语言大神,帮忙做一下这个题,要源代码设计实现一个餐厅点餐系统? 爱问知识人...

    求C语言大神,帮忙做一下这个题,要源代码 设计实现一个餐厅点餐系统,实现电子点餐.要求实现二级菜单: 一级菜单: 请选择: 1.点餐 2.查看已点菜品 3.添菜 求C语言大神,帮忙做一下这个题,要源代 ...

  3. c语言线性表的逆转,数据结构(C语言)设有一个线性表E,将线性表逆置,要求逆线性表占? 爱问知识人...

    输入数据,输出数据,及线性表的长度, 询问是否查找数据,若查找则由用户输入需查找的数据,显示此数据在线性表中的位置(第几个) */ #include #include #define NULL 0 # ...

  4. c语言输入1到12月份,C语言高手请进下面是一个日历表,运行结果中能不能把1~12月份改 爱问知识人...

    下面是一个日历表,运行结果中能不能把1~12月份改为英文的?要怎样改啊,谢谢!#include#includemain(){int i=0,m=0,k,j,n=0,l,first;int x[3]={ ...

  5. 马踏棋盘问题的程序c语言,请各位C语言大神解释下马踏棋盘的程序,各模块功能,原理,方法,如? 爱问知识人...

    //宏定义棋盘大小#define SIZE 100int board[M][M];typedef struct direct { int r,c,pathnum ;}dir ;typedef stru ...

  6. 快速排序非递归算法c语言实现,数据结构与算法----3.5 非递归的快速排序方法

    [c++]代码库#include using namespace std; #include using namespace std; typedef int KeyType; struct LEle ...

  7. c语言编译小学生计算题,小学生基本运算习题-给小学生编写练习20以内加减法计算的c程序.要求:#61548 爱问知识人...

    /*有于网吧机器没有编译器,程序尚为调试,不过估计问题不大,而且没有做任何异常处理,增加可以以自己修改*/ #include #include #include #include void main( ...

  8. c语言的考试是操作电脑还是写试卷,C语言考试试卷都是基础的题目,由于本人没学过C语言,求各位帮忙, 爱问知识人...

    都是基础的题目,由于本人没学过C语言,求各位帮忙,通过后再给一次分一.单项选择题(10道小题,共10分) 1.以下程序的输出结果是:main(){int x; for(x=1;x<10;x++) ...

  9. c语言课后题2.52.8答案,C语言练习题(8)-只要答案不要分析,要速度,要正确51.(1 爱问知识人...

    51. (1分)有以下程序 main() { int x=3, y=2, z=1; printf("%d\n",x/y&~z); } 程序运行后的输出结 ...

最新文章

  1. 全中了!接手同事项目时最崩溃的事 | 每日趣闻
  2. linux设备驱动归纳总结
  3. SpringBoot 使用(三): 配置文件详解
  4. boost::safe_numerics::checked_result相关的测试程序
  5. Ubuntu查看系统任务管理器(cpu+内存资源占用)+查看虚拟机分配核心数
  6. Cluster_analysis
  7. python+selenium 浏览器无界面模式运行
  8. IOS内购流程从0-1手把手教会
  9. 生成用于ASP.NET Web API的C#客户端API
  10. 区块链优秀gitbook资料
  11. 95后大学生利用漏洞免费吃肯德基获刑;Linux内核初步支持苹果M1;Android Studio 4.2 发布|极客头条...
  12. oracle 安全备份与rman_Oracle RMAN备份与还原注意事项
  13. oppo r11s鸿蒙固件,OPPO R11s Plus原厂rom固件系统升级包下载
  14. 红米note2能刷机没显示无服务器,红米Note2刷机失败怎么办
  15. IP的子网和超网划分
  16. 应该怎么学大数据?该从哪学起?
  17. 智能家居十大必备功能 乐享真正智能生活
  18. 前端制作PUBG瞄准镜!
  19. php tcpdf 没有头部,TCPDF使用总结 - 从头笑到尾的个人空间 - OSCHINA - 中文开源技术交流社区...
  20. idea 项目能运行,但是代码冒红-解决措施

热门文章

  1. 怎样设计一个良好大数据处理的解决方案?
  2. 2.4寸液晶控制方法
  3. 最全CSS各种布局详解
  4. C++回调机制的几种实现方式
  5. 微信小程序搜索多个关键字高亮
  6. IOS开发地理编码与反向编码
  7. java调用 火眼臻睛,连接创新,发现未来,臻识科技受邀CCF-GAIR,论道浪潮之巅...
  8. 除外存外 微型计算机的存储系统一般指,除外存之外,微型计算机的存储系统一般指()...
  9. 【BUG记录】Matisse显示的图片乱序或者在全部项不显示
  10. html如何将多个复选框组织成一组_[Selenium]18.如何处理一组元素