资源描述:
《C语言迷宫(经典题目).docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、在上面的迷宫中只有一个入口,有▲地方是有食物的,现在一只老鼠从入口处进来,要求能找到所有的食物并且打印找到食物的路径。(1)图信息:#defineN8structginfo{intup,down,left,right;intfood,visit;;}a[N][N]={…};(2)记录路径path[N*N];(3)找到食物a[x][y].food==1(4)代码#include"stdio.h"#include#defineN8intpath[64],k=0;structginfo{intup,down,left,right;intfo
2、od,visit;}a[N][N]={{0,0,0,1,0,0,0,0,1,1,0,0,0,1,1,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,1,1,1,0,0,0,0,1,1,0,0,0,1,1,0,0,0},{0,0,0,1,0,0,0,0,1,1,0,0,1,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,1,1,0,1,0,0,0,1,1,0,0,0,1,1,0,0,0,0},{0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,1,1,0,0,0,0,1,1,0,0,0,0,1,1,
3、0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0},{1,1,0,0,0,0,1,1,0,1,0,0,1,1,1,0,0,0,1,1,0,1,0,0,1,0,1,1,0,0,1,0,1,0,0,0,1,0,0,0,1,0,1,1,0,0,0,0},{1,1,0,1,0,0,1,1,1,0,0,0,1,1,0,0,0,0,1,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,1,1,1,0,0,0},{1,0,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,0,0,0,1,1,0,0,0,
4、0,1,1,0,0,0,1,1,1,0,0,0,0,1,1,0,0,1,0,1,0,0,0},{0,1,0,1,0,0,0,0,1,1,0,0,1,0,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,1,0,1,1,0,0,0,0,1,1,0,0,0,1,1,0,0,0},{1,0,0,1,1,0,0,0,1,1,0,0,0,0,1,1,0,0,1,0,1,0,0,0,1,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,1,0,1,0,0,0}};voidprint(){inti,x=0,y=0;printf("0,0
5、->");for(i=1;i<=k;i++){switch(path[i]){case1:x--;break;case2:x++;break;case3:y--;break;case4:y++;break;}if(i",x,y);elseprintf("%d,%dfound!",x,y);}}voidtry1(intx,inty){a[x][y].visit=1;if(a[x][y].food){a[x][y].food=0;print();}k++;if(a[x][y].up){path[k]=1;//方向为1x
6、--;a[x][y].down=0;if(!a[x][y].visit)try1(x,y);a[x][y].down=1;x++;}if(a[x][y].down){path[k]=2;//方向为2x++;a[x][y].up=0;if(!a[x][y].visit)try1(x,y);a[x][y].up=1;x--;}if(a[x][y].left){path[k]=3;//方向为3y--;a[x][y].right=0;if(!a[x][y].visit)try1(x,y);a[x][y].right=1;y++;}if(a[x][y].right
7、){path[k]=4;//方向为4y++;a[x][y].left=0;if(!a[x][y].visit)try1(x,y);a[x][y].left=1;y--;}a[x][y].visit=0;k--;}voidmain(){try1(0,0);}深层次问题:找发现食物的更短路。#include"stdio.h"#include#defineN8intpath[64],k=0;intf[N][N]={0};structginfo{intup,down,left,right;intfood,visit;}a[N][N]={{0,
8、0,0,1,0,0,0,0,1,1,0,0,0,1,1,1,0,0,0,0,1,