习题3-5 谜题 解题报告
来源:互联网 发布:造价软件怎么安装 编辑:程序博客网 时间:2024/06/16 04:14
题目:
代码:
#include <iostream>#include <stdio.h>using namespace std;int p,q;int main(){ char b,m; int i,j,n=1,k; char a[6][6]; for(;;) { cin.sync(); for(i=0;i<5;i++)//ÊäÈë { cin.getline(a[i],6); if(a[0][0]=='Z') { return 0; } for(j=0;j<5;j++) { if(a[i][j]=='\040') { p=i; q=j; } } } while(cin >> b) { k=1; if(b=='0') break; if(b=='A') { if(p-1<=4&&p-1>=0) { m=a[p][q]; a[p][q]=a[p-1][q]; a[p-1][q]=m; p--; } else { k=0; break; } } else if(b=='B') { if(p+1<=4&&p+1>=0) { m=a[p][q]; a[p][q]=a[p+1][q]; a[p+1][q]=m; p++; } else { k=0; break; } } else if(b=='L') { if(q-1<=4&&q-1>=0) { m=a[p][q]; a[p][q]=a[p][q-1]; a[p][q-1]=m; q--; } else { k=0; break; } } else if(b=='R') { if(q+1<=4&&q+1>=0) { m=a[p][q]; a[p][q]=a[p][q+1]; a[p][q+1]=m; q++; } else { k=0; break; } } } if(!k) { cout << "This puzzle has no final configuration." << endl << endl; continue; }else { cout << "Puzzle #" << n<< ":" << endl ; n++; for(i=0;i<5;i++)//Êä³ö { for(j=0;j<5;j++) { if(j)cout << " "; cout << a[i][j] ; } cout << endl; } cout << endl; } } return 0;}
解析:
1、注意空格的位置交换与溢出判断。
2、将每个操作定义为一次交换过程即可轻松解出。
0 0
- 习题3-5 谜题 解题报告
- 习题3-3 数数字 解题报告
- 习题1-5 打折 解题报告
- 习题1-3 连续和 解题报告
- 习题3-1 得分 解题报告
- 习题3-2 分子量 解题报告
- 习题3-4 周期串 解题报告
- 习题2-5 分数化小数 解题报告
- 习题1-1 平均数 解题报告
- 习题1-2 温度 解题报告
- 习题1-6 三角形 解题报告
- 习题1-7 年份 解题报告
- 习题2-1 水仙花数 解题报告
- 习题2-2 韩信点兵 解题报告
- 习题2-6 排列 解题报告
- 数据结构与算法MOOC习题解题报告(PART 1:第1课-第5课)
- 习题1-4 正弦和余弦 解题报告
- 习题2-4 字序列的和 解题报告
- 第一篇博客,写在颓废之时
- Android ProGuard技术详解
- zTree的调用设使用(跨两个系统,两类技术实现的项目案例SpringMVC+Spring+MyBatis和Struts2+Spring+ibatis框架组合)
- Codeforces 295B Greg and Graph
- Java基础——Java笔记——String类常用方法
- 习题3-5 谜题 解题报告
- 服务器登录名、角色、数据库用户、角色、架构的关系
- 打印机报错“The RPC server is unavailable”解决办法
- java基础之多线程
- 通过使用 OpenVPN 协议连接到 VPN Gate
- 使用Centos6.3-32bit + vsftpd 来搭建FTP服务器
- hdu 1269 迷宫城堡
- 从头认识java-10.6 finally(2)-finally用来做什么
- Python计算机视觉编程练习11:备忘