首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

劳烦大家看上这个程序,帮小弟我找出异常所在

2012-09-07 
劳烦大家看下这个程序,帮我找出错误所在迷宫问题(求最少的步数)查看提交统计提问时间限制: 1000ms内存限制

劳烦大家看下这个程序,帮我找出错误所在
迷宫问题(求最少的步数)查看提交统计提问时间限制: 1000ms内存限制: 2000kB

描述

  第一行为测试数据的个数k,下面的若干行紧跟k个测试数据。

  每个测试数据构成如下:
  1. 第一行两个整数m,n,代表迷宫矩形的行数和列数(1<=m<=100,1<=n<=100)。
  2. 接下来的m行,每行n个字符,仅由'.'和'x'组成。其中'.'表示通路,'x'表示建筑。每一步只能走上下左右四个方向的任意一个(如果该方向仍在给定地图内)。m行中,第一行的第一个字符代表是北门,最后一行的最后一个字符代表是南门,这两个字符保证是'.'。

  输出从北门到南门最快要走几步。如果从北门不能走到南门,输出-1。

**************************************************************
注意:读入数据时请尽量避免使用scanf("%c", &ch);这种方式,容易
引起数据输入混乱。对于迷宫字符串,直接使用scanf("%s"...)格式
读入,可以避免前面scanf("%d%d",...)读取行数和列数留下的回车符
造成的麻烦(这时不再需要使用getchar()读取回车符。getchar()
读取回车符时在Linux下和Windows下的行为是不一样的,这样会造成
问题。
**************************************************************

/************************************************************\
  请不要在程序中使用system("pause");之类的东西,会导致
  Runtime error! 也不要输出任何非题目要求的内容!!!
\************************************************************/


样例输入
2
4 4
.xxx
...x
xx.x
xx..
5 5
.....
.....
#...#
##..#
.....样例输出
6
8

提示
注意:
(1)不要向标准输出(屏幕)写入题目要求输出结果之外的其他数据,否则你会被判为“Wrong Answer”,即错误的运行结果。

(2)你的程序也不能试图读或写任何文件,否则你可能被判为“Runtime Error”(运行时错误)或“Wrong Answer”(错误结果)。

(3)对于GCC或者G++,main()函数的返回值必须是int型,否则可能导致“Compile Error”即编译错误。

我的程序:

#include "stdio.h"
#include "string.h"
char a[5][5];

int N=0;int U=0;
int m=0;int n=0;
void fun(int i,int j,int k)
{if(k)
  N+=2;
 if(i==m&&j==n)
  U=1;
 if(a[i+1][j]=='.')
  U=2;
 if(a[i][j+1]=='.')
  U=3;
 if(a[i-1][j]=='.')
  U=4;
 if(a[i][j-1]=='.')
  U=5;
 if(!U)
  {U=6;printf("-1");}
  switch(U)
  {
  case1:printf("%d\n",N);break;
  case2:k=0;fun(i+1,j,k);break;
  case3:k=0;fun(i,j+1,k);break;
  case4:k=1;fun(i-1,j,k);break;
  case5:k=1;fun(i,j-1,k);
  case6:break;}  
  }
int main()
{void fum(int,int,int);
int k=0;int j=0;int i=0;
scanf("%d",&k);
for(i=k;i!=0;i--)
 { scanf("%d %d",&m,&n);
  N=m+n;
  for(j=0;j<m;j++)
  scanf("%s",a[j]);
  fun(0,0,0);
 memset(a,'\0',sizeof(a));}
 while(1);
}


我是菜鸟一个,希望大家助我,帮我成长。

[解决办法]
楼主提交报什么错误?这题就是个简单的 BFS
[解决办法]
楼主的代码是编译不通过
还是运行结果不是预期的?

如果是编译不通过,报出的错误信息能否贴上来?

热点排行