UVA - 227 Puzzle
2015-10-02 15:29
281 查看
#include <stdio.h>
#include <string.h>
int main()
{
int i,j,len,kase=0,flag=0;
char st[10][10],ord[1000];
while(gets(st[0]))
{
if(st[0][0]=='Z') break;
if(flag==1) printf("\n");
flag=1;
int a,b;
int k=0;
int ans=0;
for(i=1;i<5;i++)
gets(st[i]);
while(~scanf("%c",&ord[k]))
{
if(ord[k]=='0') break;
k++;
}
getchar();
len=strlen(ord);
for(i=0;i<5;i++)
for(j=0;j<5;j++)
{
if(st[i][j]==' ')
{
a=i;
b=j;
i=100;
break;
}
}
printf("Puzzle #%d:\n",++kase);
for(i=0;i<len;i++)
{
if(ord[i]=='0') break;
if(ord[i]=='A')
{
if(a==0)
{
printf("This puzzle has no final configuration.\n");
ans=1;
break;
}
int t=st[a][b];
st[a][b]=st[a-1][b];
st[a-1][b]=t;
a=a-1;
}
else if(ord[i]=='B')
{
if(a==4)
{
printf("This puzzle has no final configuration.\n");
ans=1;
break;
}
int t=st[a][b];
st[a][b]=st[a+1][b];
st[a+1][b]=t;
a=a+1;
}
else if(ord[i]=='L')
{
if(b==0)
{
printf("This puzzle has no final configuration.\n");
ans=1;
break;
}
int t=st[a][b];
st[a][b]=st[a][b-1];
st[a][b-1]=t;
b=b-1;
}
else if(ord[i]=='R')
{
if(b==4)
{
printf("This puzzle has no final configuration.\n");
ans=1;
break;
}
int t=st[a][b];
st[a][b]=st[a][b+1];
st[a][b+1]=t;
b=b+1;
}
}
if(ans==0)
{
for(i=0;i<5;i++)
{
printf("%c",st[i][0]);
for(j=1;j<5;j++)
printf(" %c",st[i][j]);
printf("\n");
}
memset(st,0,sizeof(st));
memset(ord,0,sizeof(st));
}
}
return 0;
}
心得:没什么好说的,调试比较麻烦= =
#include <string.h>
int main()
{
int i,j,len,kase=0,flag=0;
char st[10][10],ord[1000];
while(gets(st[0]))
{
if(st[0][0]=='Z') break;
if(flag==1) printf("\n");
flag=1;
int a,b;
int k=0;
int ans=0;
for(i=1;i<5;i++)
gets(st[i]);
while(~scanf("%c",&ord[k]))
{
if(ord[k]=='0') break;
k++;
}
getchar();
len=strlen(ord);
for(i=0;i<5;i++)
for(j=0;j<5;j++)
{
if(st[i][j]==' ')
{
a=i;
b=j;
i=100;
break;
}
}
printf("Puzzle #%d:\n",++kase);
for(i=0;i<len;i++)
{
if(ord[i]=='0') break;
if(ord[i]=='A')
{
if(a==0)
{
printf("This puzzle has no final configuration.\n");
ans=1;
break;
}
int t=st[a][b];
st[a][b]=st[a-1][b];
st[a-1][b]=t;
a=a-1;
}
else if(ord[i]=='B')
{
if(a==4)
{
printf("This puzzle has no final configuration.\n");
ans=1;
break;
}
int t=st[a][b];
st[a][b]=st[a+1][b];
st[a+1][b]=t;
a=a+1;
}
else if(ord[i]=='L')
{
if(b==0)
{
printf("This puzzle has no final configuration.\n");
ans=1;
break;
}
int t=st[a][b];
st[a][b]=st[a][b-1];
st[a][b-1]=t;
b=b-1;
}
else if(ord[i]=='R')
{
if(b==4)
{
printf("This puzzle has no final configuration.\n");
ans=1;
break;
}
int t=st[a][b];
st[a][b]=st[a][b+1];
st[a][b+1]=t;
b=b+1;
}
}
if(ans==0)
{
for(i=0;i<5;i++)
{
printf("%c",st[i][0]);
for(j=1;j<5;j++)
printf(" %c",st[i][j]);
printf("\n");
}
memset(st,0,sizeof(st));
memset(ord,0,sizeof(st));
}
}
return 0;
}
心得:没什么好说的,调试比较麻烦= =
相关文章推荐
- Tail call optimization in Scala
- html5 canvas 标签绘制图像且渐变色处理
- karatsuba乘法及相关实现
- final关键字
- 线程间的通信与同步
- Centos6.5下一个Ceph存储集群结构
- 笛卡尔积
- ExtJs 格式化字符串:去除行首、行尾空格、换行符
- Saliency, Scale and Image Description
- HP QR Code 生成二维码
- 民营经济是根本出路
- 关于二进制文件储存格式
- 系统调用方式访问文件
- 【Android】Camera 使用浅析
- [python爬虫] Selenium定向爬取海量精美图片及搜索引擎杂谈
- Set Up VTune Amplifier(windows) 2015 for Remote (linux)Analysis
- 黑马程序员---java基础---网络编程
- 《php和mysql web开发》笔记——第9章 创建Web数据库
- thinkphp3.2.3子查询中遇到的错误
- 走向知识经济新时代