#include<stdio.h> int count=0;int notDanger(int row,int j,int (*chess)[8]){int i,k,flag1=0,flag2=0,flag3=0,flag4=0,flag5=0;//判断列方向for(i=0;i<8;i++){if(*(*(chess+i)+j)!=0 ){flag1=1;break;}}//判断左上方for(i=row,k=j;i>=0&&k>=0;i--,k--){if(*(*(chess+i)+k)!=0 ){flag2=1;break;}}//判断右下方for(i=row,k=j;i<8&&k<8;i++,k++){if(*(*(chess+i)+k)!=0 ){flag3=1;break;}}//判断左下方for(i=row,k=j;i<8&&k>=0;i++,k--){if(*(*(chess+i)+k)!=0 ){flag4=1;break;}}//判断右上方for(i=row,k=j;i>=0&&k<8;i--,k++){if(*(*(chess+i)+k)!=0 ){flag5=1;break;}}if(flag1||flag2||flag3||flag4||flag5){return 0;}else{return 1;}}
//参数row表示起始行
//参数n表示列数
//参数(*chess)[8]):表示棋盘每行的指针
void eight_que(int row,int n,int (*chess)[8]){int i,j,chess2[8][8];for(i=0;i<8;i++){for(j=0;j<8;j++){chess2[i][j]=chess[i][j];}}if(row==8){printf("第%d种成功方法:\n",count+1);for(i=0;i<8;i++){for(j=0;j<8;j++){printf("%d ",*(*(chess2+i)+j));}printf("\n");}printf("\n");count++;
}else{//判断位置是否有危险for(j=0;j<n;j++){if(notDanger(row,j,chess)){for(i=0;i<8;i++){*(*(chess2+row)+i)=0;}*(*(chess2+row)+j)=1; eight_que(row+1,n,chess2);}}}
}int main(){int chess[8][8],i,j;for(i=0;i<8;i++){for(j=0;j<8;j++){chess[i][j]=0;}}eight_que(0,8,chess);printf("总的种类是%d\n",count);
return 0;
}

小甲鱼c语言版:八皇后问题解决思路相关推荐

  1. a算法解决八数码问题_javascript,八皇后问题解决

    八皇后问题 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例. 该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出: 在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击, 即:任意两个皇后 ...

  2. 用java实现八皇后问题_使用java语言实现八皇后问题

    八皇后问题,在一个8X8的棋盘中,放置八个棋子,每个棋子的上下左右,左上左下,右上右下方向上不得有其他棋子.正确答案为92中,接下来用java语言实现. 解: package eightQuen; / ...

  3. 【小甲鱼C语言】课后笔记第一章第三节——常量和宏定义

    目录 1.常见的常量 2.宏定义(符号常量) 3.标识符 4.字符串常量 5.课后习题(编程题) 1.常见的常量 整型常量:520, 1314, 123 实型常量:3.14, 5.12, 8.97 字 ...

  4. 小甲鱼python视频第八讲(课后习题)

    1.for循环的使用,注意下面代码的区别 for i in range(0,10,2):print("i love you") for i in range(0,10):print ...

  5. 小甲鱼 OllyDbg 教程系列 (八) :fjproducer 逆向 之 困境

    小甲鱼 OllyDBG 教程:https://www.bilibili.com/video/av30969642?p=15 程序下载地址: https://pan.baidu.com/s/1xTBrv ...

  6. 八皇后问题c语言循环,八皇后问题的12组解

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #define N 8 /*皇后数*/ typedef int bool; rot(char d[ ],char s[ ...

  7. 88皇后问题C语言程序设计,八皇后问题--C语言程序设计.pdf

    八皇后问题 学 2012年 9 月 5 日 目录 一.选题 1.1背景知识---------------------------2 1.2设计目的与要求------------------------ ...

  8. 小甲鱼c语言课后作业_知识,就是力量——山财“学习小课堂”助你蓄力

    编者按 少年,你渴望 知识的力量 吗? 我们有山财最全的学习秘籍, 只待你的耐心翻阅与潜心修炼! 接下来,就让我们一起查收学习干货~ 内容摘要 本系列推送分为 [悦览篇][干货篇][招募篇] 三大模块 ...

  9. 【小甲鱼C语言】课后笔记第一章第一节——打印(printf)

    目录 1."打印"就是"输出"的意思 2.使用 GCC 编译程序:gcc 源代码 -o 可执行文件. 3.printf 是格式化输出函数 a.函数概要 b.函数 ...

  10. 【小甲鱼C语言】课后笔记第一章第九节——if语句

    目录 1. 分支结构的作用就是将 C 语言的代码引入歧途 2.switch语句和分支嵌套 1. switch 语句 2. 使用 break 语句跳出 3. 分支结构的嵌套 2. 使用 break 语句 ...

最新文章

  1. mysql主从切换(正常切换)
  2. 安装mysql.dox_linux虚拟机上装mysql数据库-Go语言中文社区
  3. POI实现Excel导入Cannot get a text value from a numeric cell
  4. 关于 CSS3 backface-visiable 与 overflow 属性的冲突
  5. 2019招商银行M-Geeker线上比赛题解析
  6. 专家 安全_船级社专家组到公司开展安全生产标准化考核
  7. python安装matlab库_[python][matlab]在python36上安装matlab2015b引擎
  8. 发财指南-----------------86400/天
  9. BeautifulSoup_python3
  10. Ios 12 linux,iOS12.3~12.4.2支持越狱?包括 A12 设备
  11. ERROR: Invalid requirement: ‘opencv-p-thon\xa0\xa0-i‘
  12. 自制力差?!教你强迫自己学习
  13. Linux系统配置及服务管理_02章_文件和用户管理
  14. docker(ELK) - logstash-elasticsearch-kibana
  15. 解决无法读取META-INF.services里面定义的类
  16. 电子仪表系统显示管理计算机,综合电子仪表系统.ppt
  17. hihocoder 1054
  18. 专访阿里巴巴毕玄:异地多活数据中心项目的来龙去脉
  19. “爱因斯坦的超级问题:谁养鱼?”
  20. aws-java-sdk-s3 简介、中文文档、中英对照文档 下载

热门文章

  1. python链家数据分析_练习—利用Python对链家网广州二手房进行数据分析
  2. 禁忌搜索算法TS求解连续函数最值
  3. Vulkan Loader 何时加载 ICD 驱动文件
  4. 尚学堂python开发工具_尚学堂百战程序员分享:Python的数据模型
  5. 飞思卡尔单片机c语言编程详解,主流16位单片机学习详解:飞思卡尔MC9S12G系列...
  6. 华为盒子EC6108V9A-RK3128-1+4G 免拆机 卡刷固件及教程
  7. 鸿蒙系统主题如何自定义,华为鸿蒙系统细节曝光 支持自定义选项
  8. win7万能声卡驱动_黑苹果AppleALC声卡驱动教程详解
  9. (四)数据建模和数据库设计
  10. dev、test、pre和prod是什么意思?