帮我看下c语言这段程序哪里有问题

来源:百度知道 编辑:UC知道 时间:2024/07/05 05:50:35
/* #:2 can go:1 can't go:0 */
#include <stdio.h>
const int way[4][2]={0,1,1,0,-1,0,0,-1};
int go[51][51];
int m,n;
void make(int ac[51][51],int x,int y)
{
int i,xx,yy;
go[x][y]=1;
ac[x][y]=1;
for(i=0;i<4;i++)
{
xx=x+way[i][0];
yy=y+way[i][1];
if (xx>=0) && (xx<=m+1)
&&(yy>=0) && (yy<=n+1) && (go[xx][yy]==0)
make(ac,xx,yy);
}
}
main()
{
int i,j,k,count=0;
char a[51][51];
int b[51][51];
scanf("%d %d",&m,&n);
for(i=0;i<=m+1;i++)
for(j=0;j<=n+1;j++)
{
a[i][j]='.';
b[i][j]=0;
go[i][j]=0;
}
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{
scanf("%c",&a[i][j]);
if (a[i][j]=='#') b[i][j]=2;
}
b[0][0]=1;
make(b,0,0);
for(i=1;i<=m;i++)
for(j=1

/* #:2 can go:1 can't go:0 */
#include <stdio.h>
const int way[4][2]={0,1,1,0,-1,0,0,-1};
int go[51][51];
int m,n;
void make(int ac[51][51],int x,int y)
{
int i,xx,yy;
go[x][y]=1;
ac[x][y]=1;
for(i=0;i<4;i++)
{
xx=x+way[i][0];
yy=y+way[i][1];
if ((xx>=0) && (xx<=m+1)
&&(yy>=0) && (yy<=n+1) && (go[xx][yy]==0)) //此处少括号
make(ac,xx,yy);
}
}
main()
{
int i,j,k,count=0;
char a[51][51];
int b[51][51];
scanf("%d %d",&m,&n);
for(i=0;i<=m+1;i++)
for(j=0;j<=n+1;j++)
{
a[i][j]='.';
b[i][j]=0;
go[i][j]=0;
}
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{
scanf("%c",&a[i][j]);
if (a[i][j]=='#') b[i][j]=2;
}
b[0][0]=1;
make(b,0,0);
for(i=1;i<=m;i++)