广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 2900 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
abc10227
数位造型
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x0 鲜花 x0
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[C/C++][求助] 求助老鼠迷宫问题
编译都可以过

要问的是 地图是因为太大所以他一直跑吗??


有试着把地图改成8X8 他有跑出3种走法


可是我只要1种就好

他怎么会一直跑哩??

#include <stdio.h>
#include <stdlib.h>
typedef struct
{
int vert;
int horiz;
}offsets;
offsets move ={
{1,0},{-1,0},{0,-1},{0,1},{1,1},{-1,1},{1,-1},{-1,-1}
};


int maze={
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,0,1,0,0,0,1,1,0,0,0,1,1,1,1,1,1},
{1,1,0,0,0,1,1,0,1,1,1,0,0,1,1,1,1},
{1,0,1,1,0,0,0,0,1,1,1,1,0,0,1,1,1},
..

访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容




献花 x0 回到顶端 [楼 主] From:台湾中华电信 | Posted:2010-04-11 14:50 |
su5gsm
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x0 鲜花 x5
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

#include <stdio.h>
#include <stdlib.h>
typedef struct
{
    int vert;
    int horiz;
}offsets;
offsets move[8] ={
    {1,0},{-1,0},{0,-1},{0,1},{1,1},{-1,1},{1,-1},{-1,-1}
    };


int maze[13][17]={
        {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
        {1,0,0,0,0,0,1,1,0,0,0,1,1,1,1,1,1},
        {1,1,0,0,0,1,1,0,1,1,1,0,0,1,1,1,1},
        {1,0,1,1,0,0,0,0,1,1,1,1,0,0,1,1,1},
        {1,1,1,0,1,1,1,0,0,1,1,0,1,1,0,0,1},
        {1,1,1,0,1,0,0,1,0,0,1,1,1,1,1,1,1},
        {1,0,0,1,1,0,1,1,1,0,0,0,0,0,0,1,1},
        {1,0,1,1,1,1,0,0,1,1,1,1,1,1,0,1,1},
        {1,0,0,1,1,0,1,1,0,1,1,1,1,1,0,1,1},
        {1,1,1,0,0,0,1,1,0,1,1,0,0,0,0,0,1},
        {1,0,0,1,1,1,1,1,0,0,0,1,1,1,1,0,1},
        {1,0,1,0,0,1,1,1,1,1,0,1,1,1,1,0,1},
        {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
     
        };   //迷宫
       
void print_ans()
{
  int i,j;
  for(i=0;i<13;i++)
    {
    for(j=0;j<17;j++) printf("%d ",maze[j]);
    printf("\n");
    }
    printf("\n");
  return ;  

}       //印答案
     
     
     
void findpath(int row, int col)
{
  int direct,next_row,next_col,k,l;
  direct = 0;
  maze[row][col]=2;
  while(direct<8)
  {
            next_row =row + move[direct].vert;
            next_col =col + move[direct].horiz;
    if(maze[next_row][next_col]==0)
    {
      maze[next_row][next_col] =2;
      if(next_row==11 && next_col==15) print_ans();
        else {
            findpath(next_row,next_col);
            maze[next_row][next_col] = 0;
            }
    }
      direct++;
    }    
}


int main() {
    findpath(1,1);
system("pause");
  }


献花 x0 回到顶端 [1 楼] From:台湾中华电信 | Posted:2010-11-24 20:17 |

首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.019578 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言