| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
各位大牛帮帮我 给几组测试数据吧wa 实在不知道错在哪了
#include"stdio.h"
#include"string.h"
int top,hang,lie,x[1000],y[1000],matrix_judge[20][20],matrix_result[40][40];
void Let_us_go(int x_start,int y_start,int x_end,int y_end)
{
int i,j,count;
top=2;
count=0;
x[0]=x_start;
y[0]=y_start;
while(x[count]!=x_end||y[count]!=y_end)
{
if(y[count]-1>=0&&matrix_judge[x[count]][y[count]-1]!=1&&matrix_judge[x[count]][y[count]-1]!=3&&matrix_result[x[count]][y[count]-1]==0)
{
x[count+1]=x[count];
y[count+1]=y[count]-1;
count+=1;
matrix_result[x[count]][y[count]]=top;
top+=1;
}
else if(x[count]-1>=0&&matrix_judge[x[count]-1][y[count]]!=2&&matrix_judge[x[count]-1][y[count]]!=3&&matrix_result[x[count]-1][y[count]]==0)
{
x[count+1]=x[count]-1;
y[count+1]=y[count];
count+=1;
matrix_result[x[count]][y[count]]=top;
top+=1;
}
else if(y[count]+1<lie&&matrix_judge[x[count]][y[count]]!=1&&matrix_judge[x[count]][y[count]]!=3&&matrix_result[x[count]][y[count]+1]==0)
{
x[count+1]=x[count];
y[count+1]=y[count]+1;
count+=1;
matrix_result[x[count]][y[count]]=top;
top+=1;
}
else if(x[count]+1<hang&&matrix_judge[x[count]][y[count]]!=2&&matrix_judge[x[count]][y[count]]!=3&&matrix_result[x[count]+1][y[count]]==0)
{
x[count+1]=x[count]+1;
y[count+1]=y[count];
count+=1;
matrix_result[x[count]][y[count]]=top;
top+=1;
}
else
{
matrix_result[x[count]][y[count]]=9999;
count-=1;
top-=1;
}
}
}
main()
{
char frame[200][200];
int i,j,m,n,judge,x_start,y_start,x_end,y_end,count=1;
while(EOF!=scanf("%d%d%d%d%d%d",&hang,&lie,&x_start,&y_start,&x_end,&y_end))
{
if(hang==0&&lie==0&&x_start==0&&y_start==0&&x_end==0&&y_end==0)
{
break;
}
x_start-=1;
y_start-=1;
x_end-=1;
y_end-=1;
for(i=0;i<hang;i++)
{
for(j=0;j<lie;j++)
{
scanf("%d",&matrix_judge[i][j]);
matrix_result[i][j]=0;
}
}
for(i=0;i<200;i++)
{
for(j=0;j<200;j++)
{
frame[i][j]=0;
}
}
x[0]=x_start;
y[0]=y_start;
matrix_result[x[0]][y[0]]=1;
Let_us_go(x_start,y_start,x_end,y_end);
printf("Maze %d\n\n",count++);
for(i=0;i<2*hang+1;i++)
{
if(i%2==0)
{
for(j=0;j<4*lie+1;j++)
{
if(j%4==0)
{
frame[i][j]='+';
}
else if(i==0||i==2*hang)
{
frame[i][j]='-';
}
else if(i>=2&&(matrix_judge[(int)i/2-1][(int)j/4]==2||matrix_judge[(int)i/2-1][(int)j/4]==3))
{
frame[i][j]='-';
}
}
}
else
{
for(j=0;j<4*lie+1;j++)
{
if(j==0||j==4*lie)
{
frame[i][j]='|';
}
else if(i<=2*hang&&(matrix_judge[(i-1)/2][(int)j/4]==1||matrix_judge[(i-1)/2][(int)j/4]==3))
{
frame[i][(int(j/4)+1)*4]='|';
}
}
}
}
for(i=0;i<hang;i++)
{
for(j=0;j<lie;j++)
{
if(matrix_result[i][j]==9999)
{
frame[2*i+1][4*j+1]='?';
frame[2*i+1][4*j+2]='?';
frame[2*i+1][4*j+3]='?';
}
else if(matrix_result[i][j]>0&&matrix_result[i][j]<=9)
{
frame[2*i+1][4*j+3]=matrix_result[i][j]+48;
}
else if(matrix_result[i][j]>9&&matrix_result[i][j]<=99)
{
frame[2*i+1][4*j+1]=0;
frame[2*i+1][4*j+2]=matrix_result[i][j]/10+48;
frame[2*i+1][4*j+3]=matrix_result[i][j]%10+48;
}
else if(matrix_result[i][j]>99&&matrix_result[i][j]<=999)
{
frame[2*i+1][4*j+1]=matrix_result[i][j]/100+48;
frame[2*i+1][4*j+2]=matrix_result[i][j]%100/10+48;
frame[2*i+1][4*j+3]=matrix_result[i][j]%10+48;
}
}
}
for(i=0;i<2*hang+1;i++)
{
for(j=0;j<4*lie+1;j++)
{
printf("%c",frame[i][j]);
}
printf("\n");
}
printf("\n\n");
}
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator