| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 338 人关注过本帖
标题:求高手帮我看看这段代码有啥问题
只看楼主 加入收藏
yausgw
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-8-30
结帖率:0
收藏
 问题点数:0 回复次数:0 
求高手帮我看看这段代码有啥问题
#include<stdio.h>
#include<stdlib.h>
#define M 4
#define N 4
#define MaxSize 100
int mg1[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,0,0,0,0,1},
    {1,1,1,1,1,1}
};
struct
{
    int i;
    int j;
    int pre;
}Qu[MaxSize];
int front=-1,rear=-1;
int minlen=0;
int num=1;
void print1(int front)
{
    int k=front,j;
    int ns=0;
    do
    {
        j=k;
        k=Qu[k].pre;
        ns++;
    } while(k!=-1);
    if(num==1) minlen=ns;
    if(ns==minlen)
    {
        ns=0;
        k=front;
        printf("第%d条最短路径(反向输出):\n",num++);
        do
        {
            j=k;
            printf("\t(%d,%d)",Qu[k].i,Qu[k].j);
            k=Qu[k].pre;
            if(++ns%5==0) printf("\n");
        } while(k!=-1);
        printf("\n");
    }
}
void mgpath1(int x1,int y1,int x2,int y2)
{
    int i,j,find=0,di,k;
    rear++;
    Qu[rear].i=x1;
    Qu[rear].j=y1;
    Qu[rear].pre=-1;
    while(front!=rear)
    {
        front++;
        for(di=0;di<4;di++)
        {
            switch(di)
            {
            case 0:i=Qu[front].i-1;j=Qu[front].j;break;
            case 1:i=Qu[front].i;j=Qu[front].j+1;break;
            case 2:i=Qu[front].i+1;j=Qu[front].j;break;
            case 3:i=Qu[front].i;j=Qu[front].j-1;break;
            }
            if(i>0&&j>0&&mg1[i][j]==0&&(i!=Qu[Qu[front].pre].i||j!=Qu[Qu[front].pre].j))
            {
                rear++;
                Qu[rear].i=i;
                Qu[rear].j=j;
                Qu[rear].pre=front;
            }
        }
    }
    for(k=0;k<=rear;k++)
    {
        if(Qu[k].i==x2&&Qu[k].j==y2)
        {
            find=1;
            print1(k);
        }
    }
    if(!find)
        printf("不存在路径!\n");
}
void main()
{
    printf("所有迷宫([1,1]->[4,4])最短路径\n");
    mgpath1(1,1,M,N);
}
搜索更多相关主题的帖子: include 
2015-08-30 14:46
快速回复:求高手帮我看看这段代码有啥问题
数据加载中...
 
   



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

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