前辈们帮我看看,自己在VC6.0是可以运行的,但是提交到学校网站测试就报错了,错误详情及代码如下
#include<stdio.h>void readdata();
void init();
int search();
bool empty_queue();
void addto_queue(int row,int col);
int takeout_queue();
bool canmoveto(int row,int col,int *r,int *c,int i);
bool isaim(int row,int col);
#define N 12
char Array[12][12];
int start_row,start_col,aim_row,aim_col;
int head,tail,queue[1000],queue_len=1000;
int main()
{
int step_num;
readdata();
init();
step_num=search();
printf("%d\n",step_num);
return 0;
}
int search()
{
int i;
int u,row,col,r,c;
int num;
while(!empty_queue())
{
u=takeout_queue();
row=u/N; col=u%N;
num=Array[row][col];
for(i=0;i<4;i++)
{
if(canmoveto(row,col,&r,&c,i))
{
if(isaim(r,c))
return num+1;
Array[r][c]=num+1;
addto_queue(r,c);
}
}
}
return 0;
}
bool empty_queue()
{
if(head==tail)
return true;
return false;
}
int takeout_queue()
{
int u;
u=queue[head++];
head=head%queue_len;
return u;
}
bool canmoveto(int row,int col,int *r,int *c,int i)
{
switch(i)
{
case 0: col--; break;
case 1: row++; break;
case 2: col++; break;
case 3: row--; break;
}
*r=row;
*c=col;
if(row>=0 &&col>=0 &&row<N &&col<N)
if(Array[row][col]==0)
return true;
return false;
}
bool isaim(int r,int c)
{
if(r==aim_row-1 &&c==aim_col-1)
return true;
return false;
}
void addto_queue(int row,int col)
{
int u;
u=row*N+col;
queue[tail++]=u;
tail=tail%queue_len;
}
void readdata()
{
int i,j;
char str[12];
scanf("%d%d",&start_row,&start_col);
scanf("%d%d",&aim_row,&aim_col);
for(i=0;i<N;i++)
{
scanf("%s",str);
for(j=0;j<N;j++)
{
if(str[j]=='.')
Array[i][j]=0;
else
Array[i][j]=1;
}
}
}
void init()
{
head=0;
tail=1;
queue[0]=(start_row-1)*N+start_col-1;
}
错误信息:
编译错误:
Main.c
274966\Main.c(6) : error C2061: syntax error : identifier 'empty_queue'
274966\Main.c(6) : error C2059: syntax error : ';'
274966\Main.c(6) : error C2059: syntax error : ')'
274966\Main.c(9) : error C2061: syntax error : identifier 'canmoveto'
274966\Main.c(9) : error C2059: syntax error : ';'
274966\Main.c(9) : error C2059: syntax error : 'type'
274966\Main.c(10) : error C2061: syntax error : identifier 'isaim'
274966\Main.c(10) : error C2059: syntax error : ';'
274966\Main.c(10) : error C2059: syntax error : 'type'
274966\Main.c(51) : error C2061: syntax error : identifier 'empty_queue'
274966\Main.c(51) : error C2059: syntax error : ';'
274966\Main.c(51) : error C2059: syntax error : ')'
274966\Main.c(64) : error C2061: syntax error : identifier 'canmoveto'
274966\Main.c(64) : error C2059: syntax error : ';'
274966\Main.c(64) : error C2059: syntax error : 'type'
274966\Main.c(80) : error C2061: syntax error : identifier 'isaim'
274966\Main.c(80) : error C2059: syntax error : ';'
274966\Main.c(80) : error C2059: syntax error : 'type'