网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > 课程设计 > 正文

迷宫问题

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
迷宫问题|数据结构课程设计
/*****************迷宫问题***************/#define MAX 100typedef struct {                                                          /*   */        short int row;        short int col;        short int dir;        }element;element stack[MAX];typedef struct{        short int vert;        short int horiz; }offsets;offsets move[8]; int top=-1; int maze[9][6],mark[MAX][MAX]; int EXIT_ROW; int EXIT_COL;void add(int *top,element a);element delete(int *top);void path(void);void chushi(offsets move[8]);main(){ int i,j; chushi(move); printf("The maze is:");                                                   /*输入迷宫:最外围必须是1*/for(i=0;i<9;i++)  for(j=0;j<6;j++)   scanf("%d",&maze[i][j]);for(i=0;i<9;i++){  printf("\n"); for(j=0;j<6;j++) printf("%d",maze[i][j]);}EXIT_ROW=i-2;EXIT_COL=j-2;printf("\n");path();}void add(int *top,element a)                                           /*入栈函数*/{ stack[++*top]=a;}element delete(int *top){ return stack[(*top)--];}void path(void)                                                                 /*搜索出口*/{ int   i, row, col, next_row, next_col, dir, found = 0; element    position; mark[1][1] = 1;    top = 0; stack[0].row = 1; stack[0].col = 1; stack[0].dir = 1; while ( top > -1 && !found ) { position = delete(&top);row = position.row; col = position.col;dir = position.dir;while ( dir < 8 && !found ){ next_row = row + move[dir].vert; next_col = col + move[dir].horiz; if ( next_row == EXIT_ROW && next_col == EXIT_COL ) found = 1;else if ( !maze[next_row][next_col] && !mark[next_row][next_col] ) {mark[next_row][next_col] = 1;position.row = row; position.col = col;position.dir = ++dir; add(&top, position); row = next_row; col = next_col; dir = 0;  }   else ++dir; } } if ( found==1 ) {  printf ("The path is:\n");  printf ("row  col\n");  printf("\n");  for ( i = 0; i <= top; i++ )  printf ("%2d %5d", stack[i].row, stack[i].col);  printf("\n");  printf ("%2d %5d\n",row,col);  printf("\n");  printf ("%2d%5d\n",EXIT_ROW,EXIT_COL); } else printf ("The maze does not have a path\n");}void chushi(offsets move[8])                                       /*初始化8个方向*/{ move[0].vert=-1;move[0].horiz=0; move[1].vert=-1;move[1].horiz=1; move[2].vert=0;move[2].horiz=1; move[3].vert=1;move[3].horiz=1; move[4].vert=1;move[4].horiz=0; move[5].vert=1;move[5].horiz=-1; move[6].vert=0;move[6].horiz=-1; move[7].vert=-1;move[7].horiz=-1;}
为什么能运行,但却输不出path.问题补充:没少函数,单步运行后,问题出在EXIT_ROW,EXIT_COL
设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师