标题:请问怎么运行不出来呢
只看楼主
文江
Rank: 2
等 级:论坛游民
帖 子:77
专家分:20
注 册:2015-8-17
结帖率:100%
已结贴  问题点数:20 回复次数:2 
请问怎么运行不出来呢
#include<stdio.h>
#define M 4
#define N 4
#define MaxSize 100
int mg[M+2][N+2]={
    {1,1,1,1,1,1},{1,0,0,0,1,1},{1,0,1,0,0,1},
    {1,0,0,0,1,1},{1,1,0,0,0,1},{1,1,1,1,1,1}};
    struct
    {int i,j;
    int di;
    }Stack[MaxSize],Path[MaxSize];
    int top=-1;
    int count=1;
    int minlen=MaxSize;
    void mgpath(int xi,int yi,int xe,int ye)
    {     int i,j,di,find,k;
           top++;
           Stack[top].i=xi;
           Stack[top].j=yi;
           Stack[top].di=-1;mg[xi][yi]=-1;
           while(top>-1)
           {    i=Stack[top].i;j=Stack[top].j;di=Stack[top].di;
                if(i==xe&&j==xe)
                printf("%4d:   ",count++);
                for (k=0;k<=top;k++)
                {    printf("(%d,%d)       ",Stack[k].i,Stack[k].j);
                     if((k+1)%5==0)
                         printf("\n\t");
                }
                 printf("\n");
                 if(top+1<minlen)
                 {  for(k=0;k<=top;k++)
                         Path[k]=Stack[k];
                    minlen=top+1;
                 }
                 mg[Stack[top].i][Stack[top].j]=0;
                 top--;
                 i=Stack[top].i;j=Stack[top].j;di=Stack[top].di;
           }
           find=0;
           while  (di<4&&find==0)
           {  di++;
              switch(di)
              {
              case 0:i=Stack[top].i-1;j=Stack[top].j;break;
              case 1:i=Stack[top].i;j=Stack[top].j+1;break;
              case 2:i=Stack[top].i+1;j=Stack[top].j;break;
              case 3:i=Stack[top].i;j=Stack[top].j-1;break;
              }
              if (mg[i][j]==0) find=1;
           }
           if(find==1)
           {    Stack[top].di=di;
                top++;Stack[top].i=i;Stack[top].j=j;Stack[top].di=-1;
                mg[i][j]=-1;
           }
           else
           {     mg[Stack[top].i][Stack[top].j]=0;
                 top--;
           }
    }   
    printf("最短路径如下:\n");
    printf("长度:  %d\n",minlen);
    printf(路径:   ”);
    for(k=0;k<minlen;k++)
    {    printf("%d,%d)    ",Path[k].i,path[k].[j]);
          if((k+1)%5==0)printf("\n\t");
    }
    printf("\n")
}
void main()
{   printf(“迷宫所有路径如下:\n”);
    mgpath(1,1,M,N);
}
搜索更多相关主题的帖子: include count 
2015-10-16 11:40
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
得分:20 
解释一下题目是干什么的,你的思路

一片落叶掉进了回忆的流年。
2015-10-16 11:45
文江
Rank: 2
等 级:论坛游民
帖 子:77
专家分:20
注 册:2015-8-17
得分:0 
回复 2楼 诸葛欧阳
求解迷宫问题的所有路径及最短路径
2015-10-16 13:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-458238-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014722 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved