UVa227 PUZZLE accepted code
来源:互联网 发布:tensorflow linux cuda 编辑:程序博客网 时间:2024/06/16 10:04
原题就不贴了,主要意图是输入有一个空格存在的5*5数组,输入带有转行符的字符串对空格进行上下左右控制,以0为结束,输出移动后的数组
这道题是需要细心的,该注意的地方有以下几点:
1、输入格式比较琐碎,因为有空格所以不支持scanf,使用gets函数接受每行数据包括空格,使用scanf函数接受包含转行符的字符串
2、注意每个变量的作用域,在循环一次之后要保证你的flag、nx、ny等变量还能回到初始状态,不然容易出现puzzle2不符合要求的情况
3、防止出现runtime error,将数组定义放置在main函数外面
4、重点是空格位置的变换。
这道题编完还是有很多收获的,下面给出源码
#include <iostream>using namespace std;char a[5][7]; char b[100];int main(){int num = 0;while(gets(a[0])){if(a[0][0]=='Z') break;for(int i =1;i<5;i++){gets(a[i]);} int bx=0; int by = 0;for(int m =0;m<5;m++){ for(int n = 0;n<5;n++){if(a[m][n]==' '){bx = m;by = n;break;}}}int length = 0;while(scanf("%c",&b[length])==1){if(b[length]!='0') length++;else break;}b[length] = 0;getchar();//这里等待用户按回车 int flag = 0;int nx = bx;int ny = by;for(int i =0;b[i];i++){if(b[i]=='A'){nx = bx-1; ny = by;}else if(b[i]=='B'){nx = bx+1;ny = by;}else if(b[i]=='L'){ny = by-1;nx = bx;}else if(b[i]=='R'){ny = by+1;nx = bx;}if(nx<0||nx>4||ny<0||ny>4){flag=1;break;}else{a[bx][by] = a[nx][ny];a[nx][ny] = ' ';bx = nx;by = ny;}}if(num ++) printf("\n");cout<<"Puzzle #"<<num<<":"<<endl;if(flag){printf("This puzzle has no final configuration.\n");}else{for(int i =0;i<5;i++){for(int j =0;j<5;j++){if(j==4){cout<<a[i][j]<<endl;}else{cout<<a[i][j]<<" ";}} }} }return 0;}
1 0
- UVa227 PUZZLE accepted code
- Uva227 - Puzzle
- Uva227.Puzzle
- UVA227-Puzzle
- UVa227 Puzzle
- uva227 - Puzzle
- Puzzle,UVa227
- uva227 - Puzzle
- [UVA227]Puzzle
- UVA227 puzzle
- UVa227 Puzzle
- UVA227 Puzzle
- UVa227 Puzzle
- UVa227:Puzzle
- UVa227 Puzzle
- UVa227 - Puzzle
- Uva227-Puzzle
- uva227 puzzle
- SAP HANA中null变成问号的问题
- HDU1233 还是畅通工程
- JAVA设计模式之抽象工厂模式
- Fresco加载图片Utils
- Android安全防护之旅---Android应用"反调试"操作的几种方案解析
- UVa227 PUZZLE accepted code
- 机器学习 特征工程之特征选择
- @ResponseBody返回json数据报异常
- Windows 下Nexus搭建Maven私服
- ACM-递归递推练习C-递归的函数(记忆化搜索)
- ASP.NET中TextBox控件设立ReadOnly="true"后台取不到值
- 数字翻转
- Linux 12.0情况下出现搜狗输入法只能输入拼音的问题解决
- android 文件合并打包 Error:Execution failed for task ':app:processEnv_devDebugManifest' '解决方案