码迷,mamicode.com
首页 > 编程语言 > 详细

算法竞赛入门经典(第二版)3-5谜题UVA277

时间:2019-10-20 12:54:50      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:入门经典   flag   std   ati   fine   har   定义   break   ring   

#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\n");
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]--\n",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.\n");
else
{
for(int j=0;j<5;j++)
{
for(int k=0;k<5;k++)
{
printf(" %c",a[j][k]);
}
printf("\n");
}
}
}

}
https://vjudge.net/problem/UVA-227

如有错误,欢迎指正

算法竞赛入门经典(第二版)3-5谜题UVA277

标签:入门经典   flag   std   ati   fine   har   定义   break   ring   

原文地址:https://www.cnblogs.com/lytuser/p/11707168.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!