C语言过河问题主函数,c,c++_C语言踩石头过河问题,用DFS搜索递归了17万次但是没报错,请问是什么原因?,c,c++,算法 - phpStudy...
C语言踩石头过河问题,用DFS搜索递归了17万次但是没报错,请问是什么原因?
这是原题目,后面附上我的代码,刚刚接触DFS,不是很熟练,求教育……谢谢!!!TUT
这是题目,我大概概括一下
用'※'和'.'组成如图所示的矩阵字符串,'※'是石头,'.'是河水,过河只能踩着石头过,而且必须是你所在的石头的下一竖列的正前方或者最近的两个斜对角的石头,用example里那种纵向数字表示石头的标号,求出一个过河的路线,打印出路线经过的石头的标号
int j=0;
char Q[80];
int x=0,y=0,res=0;
char river[5][11],visited[5][11];
void dfs(y,x){
Q[x]=y; //储存每一步落脚石纵向坐标的数组
visited[x][y]=1;
int dx=1;
for (int dy=-1; dy<=1; dy++) {
int ny=y+dy,nx=x+dx;
//如果nx\ny在河的范围内,是石头,而且没有被访问过,就递归
if (nx>=0 && nx<11 && ny>=0 && ny<5 && river[ny][nx]=='*' && visited[ny][nx]==0) {
dfs(ny, nx);
}
}
//如果没有合适的落脚石,而且当前在第一竖列,就向下继续寻找第一竖列未被访问的石头,找不到就结束dfs函数
if (x==0) {
for (j=y+1; !strchr(&river[j][0], '*')&&visited[j][0]!=0&&j<5; j++);
if (j<5) {
dfs(j, 0);
}else return;
}
//如果没有合适的落脚石,且不在第一竖列,就返回上一块落脚石重新选择
dfs(Q[x-1], x-1);
return;
}
int main(){
for (int m=0; m<11; m++) {
for (int n=0; n<5; n++) {
visited[n][m]=0;
}
}
//输入五行字符
for (j=0; j<5; j++) {
printf("请输入第%d行",j+1);
gets(river[j]);
}
//找到第一竖列第一个'*'
for (j=0; j<5; j++) {
if(strchr(&river[j][0], '*'))
break;
}
dfs(j,0);
if (strlen(Q)==11) {
//打印函数求得的数组
for (int i=0; i
printf("%d",Q[i]);
}
}
else{
printf("no solution");
}
return 0;
}
相关阅读:
求类似于百度统计里选择时间的控件。
iOS程序怎么使用自定义字体
node的fs模块,可读流读不到中文数据,求教
做 HTML5页面时怎么判断手机软键盘是否隐藏?
判断两个二叉树是否互相对称(互为镜像)
CPP struct 的诡异问题
【求助】怎么在页面中直接调用非凡影音?
php和websocket怎么建立连接
请问 IOS 或 Android 开发中有向网页那样的前端框架,后端框架吗?
CSS3动画延时的一点疑问
Linux下大小写切换有延迟,延迟1~3秒
oracle数据存储过程
HTTP请求响应时间过长
现在我在学习MySQL,问问怎么复制粘贴数据库.
java对于对象锁是如何管理的?
在angular中用懒加载的方式引入highcharts插件并使用,出现错误。
fragement用fragmentmanger,fragmenttransaction添加到activity碰到问题
jquery动态each
sf编辑时代码如何显示行号?
实现forEach的问题?
C语言过河问题主函数,c,c++_C语言踩石头过河问题,用DFS搜索递归了17万次但是没报错,请问是什么原因?,c,c++,算法 - phpStudy...相关推荐
- c语言规定的主函数名是,C语言源程序中主函数名由系统规定为_______,程序员是不能改变的。...
_ "指长拳运动中动静快慢等时间节拍处理和掌握的方法"称为 所有者权益类账户有期末余额应在贷方.( ) 嗜热微生物具有耐热的蛋白和酶类 根据物理.化学因素对病毒的影响,试述如何控制 ...
- c语言中进入临界区函数,createmutex原型_c语言mutex_createmutex(13)
下面的同步技术一般均有两种使用方式,一种是直接使用WindowsAPI函数,一种是使用 由Delphi对API函数进行封装的类. 以下函数以Delphi2009中的函数格式为准. 1.Critical ...
- c语言里主函数指什么,C语言里的主函数是什么
main(),在c语言中称之为"主函数",一个c程序有且仅有一个main函数,任何一个c程序总是从main函数开始执行,main函数后面的一对圆括号不能省略. 具体形式如下: m ...
- c语言课设报告函数的比较,c语言课程设计设计报告函数的调用关系图及主要算法.doc...
程序一:简单数学问题 一.程序功能简介: 实现多个简单数学问题的求解. 二.题目分析 完成与菜单项对应的功能设计 void FindNum( ); /*用穷举法找到被咬掉的数字*/ void Find ...
- c语言数据结构的主函数怎么写,您好,关于数据结构C语言的问题,上次百度知道里面主函数没有发上去? 爱问知识人...
void main(void) { SqQueue Q; int select ; QElemType e; if ( InitQueue ( &Q) == OVERFLOW) printf ...
- c语言prime函数怎么用_C语言教程_v20201106
编程基础 1.1 通俗地理解什么是编程语言 1.2 C语言究竟是一门怎样的语言? 1.6 初中毕业能学会编程吗? 1.7 C和C++到底有什么关系? 1.8 学了 C 语 ...
- c语言枚举如何当函数返回值,C语言学习五 — 数组与枚举
数组 C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合.数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量. 数组的声明并不是声明一个个单独的变量,比如 numbe ...
- Linux c语言 beep,用Beep()函数来实现c语言编写歌曲
用Beep()函数来实现c语言编写歌曲Beep()函数是一个可以控制扬声器发出提示音的函数,包含在windows.h内.实际上,所有用到Sleep()函数的地方,都可以用这个,待后面细细说来. 要准备 ...
- c语言程序 中断函数示例,单片机_C语言函数_中断函数(中断服务程序)
c语言中的中断函数注意事项 单片机_C语言函数_中断函数(中断服务程序) 在开始写中断函数之前,我们来一起回顾一下,单片机的中断系统. 中断的意思(学习过微机原理与接口技术的同学,没学过单片机,也应该 ...
最新文章
- android cookie保存,android本地保存Cookie和还原到cookiestore
- django查询表记录的十三种方法
- exists的用法 python_10 个 Python 开发技巧
- is not in the sudoers file 解决(转)
- Qt工作笔记-Qt文档阅读笔记-qualifiedName()的官方解析及XML使用名称空间
- CentOs基础操作指令(vim、关机)
- PHP SOCKET SERVER 二
- 模型训练中batch_size的选择
- 【阿里图标库的使用】
- python爬虫豆瓣网的模拟登录实现
- b站java开发好的up主_B站有哪些不错的UP主?
- Spring Configuration Check ----Unmapped Spring configuration files found.
- 使用selenium模拟登陆163邮箱
- Mand Mobile - 滴滴出品的适用于金融项目的 Vue 移动端 UI 组件库,免费开源、灵活快速、丰富实用
- 气质妈妈“特色”制胜巧心计 情系旗袍书画淘宝梦
- 怎样处理 Safari 移动端对图片资源的限制
- java例题 汽油检测
- 2022-2028全球海上通道系统行业调研及趋势分析报告
- java | (二十七) JSP(1)指令,隐式对象,动作,标签,EL表达式
- 用计算机按出童话,算盘与计算器