算法竞赛入门经典(第二版)3-5谜题UVA277
Posted lytuser
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法竞赛入门经典(第二版)3-5谜题UVA277相关的知识,希望对你有一定的参考价值。
#include <stdio.h>
#include <string.h>
#define maxn 5
char a[maxn][maxn];
char b[100];
int flag=0;//
int main()
{
while(1)
{
int num=0, blank_x,blank_y;
while(num<5)
{
gets(a[num]);
num++;
}
printf("test
");
int x=0;//int y=0不能在这里定义,原因??
while(x<5)
{
int key=0,y=0;
while(y<5)
{
if(a[x][y]==‘ ‘)
{
blank_x=x;
blank_y=y;
key=1;
break;
}
y++;
}
if(key==1) {break;}
x++;
}
printf("[%d][%d]--
",blank_x,blank_y);
gets(b) ;
int len = strlen(b);
char temp;
for(int i=0;i<len;i++)
{
switch(b[i])
{
case ‘A‘: {a[blank_x][blank_y]=a[blank_x-1][blank_y];
a[blank_x-1][blank_y]=‘ ‘;
blank_x=blank_x-1;break;
}
case ‘B‘: {a[blank_x][blank_y]=a[blank_x+1][blank_y];
a[blank_x+1][blank_y]=‘ ‘;
blank_x=blank_x+1;break;
}
case ‘R‘: {a[blank_x][blank_y]=a[blank_x][blank_y+1];
a[blank_x][blank_y+1]=‘ ‘;
blank_y=blank_y+1;break;
}
case ‘L‘: {a[blank_x][blank_y]=a[blank_x][blank_y-1];
a[blank_x][blank_y-1]=‘ ‘;
blank_y=blank_y-1;break;
}
case ‘0‘: break;
default: flag=1;break;
}
}
if(flag==1) printf("This puzzle has no final configuration.
");
else
{
for(int j=0;j<5;j++)
{
for(int k=0;k<5;k++)
{
printf(" %c",a[j][k]);
}
printf("
");
}
}
}
}
https://vjudge.net/problem/UVA-227
如有错误,欢迎指正
以上是关于算法竞赛入门经典(第二版)3-5谜题UVA277的主要内容,如果未能解决你的问题,请参考以下文章