当前位置:三九宝宝网 → 宝宝教育 → 教学论文 → 正文

关于C语言编写一个迷宫

更新:01-02 整理:39baobao.com
字体:

[vc6 0怎么编写C语言程序]1.双击桌面上的Visual C++6.0快捷图标,打开编程环境, 2.在打开的界面中,单击“文件”菜单项。选择里面的子菜单“新建”, 单击此项(也可以直接使用快捷键:Ctrl+N) 3.在打开的新建选...+阅读

#include#include#define M 15 #define N 15 struct mark //定义迷宫内点的坐标类型 { int x; int y; }; struct Element //"恋"栈元素,嘿嘿。。 { int x,y; //x行,y列 int d; //d下一步的方向 }; typedef struct LStack //链栈 { Element elem; struct LStack *next; }*PLStack; /*************栈函数****************/ int InitStack(PLStack &S)//构造空栈 { S=NULL; return 1; } int StackEmpty(PLStack S)//判断栈是否为空 { if(S==NULL) return 1; else return 0; } int Push(PLStack &S, Element e)//压入新数据元素 { PLStack p; p=(PLStack)malloc(sizeof(LStack)); p->elem=e; p->next=S; S=p; return 1; } int Pop(PLStack &S,Element &e) //栈顶元素出栈 { PLStack p; if(!StackEmpty(S)) { e=S->elem; p=S; S=S->next; free(p); return 1; } else return 0; } /***************求迷宫路径函数***********************/ void MazePath(struct mark start,struct mark end,int maze[M][N],int diradd[4][2]) { int i,j,d;int a,b; Element elem,e; PLStack S1, S2; InitStack(S1); InitStack(S2); maze[start.x][start.y]=2; //入口点作上标记 elem.x=start.x; elem.y=start.y; elem.d=-1; //开始为-1 Push(S1,elem); while(!StackEmpty(S1)) //栈不为空 有路径可走 { Pop(S1,elem); i=elem.x; j=elem.y; d=elem.d+1; //下一个方向 while(d(%d,%d,%d)",e.x,e.y,e.d); } return; //跳出两层循环,本来用break,但发现出错,exit又会结束程序,选用return还是不错滴} if(maze[a][b]==0) //找到可以前进的非出口的点 { maze[a][b]=2; //标记走过此点 elem.x=i; elem.y=j; elem.d=d; Push(S1,elem); //当前位置入栈 i=a; //下一点转化为当前点 j=b; d=-1; } d++; } } printf("没有找到可以走出此迷宫的路径\n"); } /*************建立迷宫*******************/ void initmaze(int maze[M][N]) { int i,j; int m,n; //迷宫行,列 [/M] printf("请输入迷宫的行数 m="); scanf("%d",&m); printf("请输入迷宫的列数 n="); scanf("%d",&n); printf("\n请输入迷宫的各行各列:\n用空格隔开,0代表路,1代表墙\n",m,n); for(i=1;i

本文地址:https://www.39baobao.com/show/29_20941.html

以上内容来自互联网,请自行判断内容的正确性。若本站收录的信息无意侵犯了贵司版权,请联系我们,我们会及时处理和回复,谢谢.

以下为关联文档:

谁能教我怎么用VC 6 0编写C语言程序啊1。点击“文件”菜单按钮,选择“新建”; 2。在“工程”选项中选择“Win32 Console Application”,然后输入工程名称; 3。不急着按确定,选旁边的“文件”的选项卡,然后选“C++Sourc...

1在VC 6 0环境下编写并运行C语言程序要经历哪几个步骤 2 C语言1.编写程序后,要先经过编译(ctrl+f7)可以排查程序中的语法逻辑的错误,改正后,运行(ctrl+f5)即可看到程序运行结果,按任意键后返回程序源代码。 2.程序的基本结构有 顺序结构 选择结...

求C语言编写矩阵相乘程序void matrix(int b[][X],int c[][Y]) { int i,j,k,temp; for(i=0;i<X;i++) for(j=0;j<Y;j++){ for(k=0;k<Y;k++) a[i][j]+=b[i][k]*c[k][j]; } } 例如(完整程序): #include <std...

用C语言编写一个函数实现十六进制数至十进制数的转换在主函数中输#include#include#includeint main(){ void tran(int); int x; printf("请输入一个十六进制数:"); for(;;printf("输入不正确,请输入一个十六进制数:")) { if(scanf("%x",&x)) break; fflus...

用高级程序设计语言编写的程序用高级程序设计语言编写的程序可读性好,但不能被机器直接执行。 高级编程语言的可阅读性更强,能够方便的表达程序的功能,但高级编程语言因为是一种编译语言,所以它的运行速度比...

怎么用C语言编写100以内任意整数的阶乘啊int n; int r[600]={0}; int count(n) { int i; for(i=0;i<600;i++) r[i]*=n; for(i=599;i>0;i--) { r[i-1]=r[i-1]+r[i]/10; r[i]=r[i]%10; } } int main() { int i; int r...

编写c语言程序计算并显示任意给定值的阶乘#include <stdio.h> void main() { int i=0,N,j=1; printf("请输入一个整数"); scanf("%d",&N); if(N<0) { printf("错误!"); return; }else if(N==0){ printf("%d的阶乘是1\n",N); return;...

数据结构算法c语言迷宫求解注释非常详细,希望对你有所帮助。#include#include#define M 15 #define N 15 struct mark //定义迷宫内点的坐标类型 { int x; int y; }; struct Element //"恋"栈元素,嘿嘿。...

C语言写的迷宫遍历问题没学数据结构写的算法是how to program#include#define X_start 2#define Y_start 0//换了个顺序 #define up 0#define down 2#define right 1#define left 3void mazeTraverse(char maze[][12],int x_start,int...