Uva227-Puzzle-谜题
来源:互联网 发布:instagram软件下载 编辑:程序博客网 时间:2024/06/07 00:35
题目链接https://vjudge.net/problem/UVA-227
类似于推箱子游戏,问你推完之后是什么样子。中途有非法操作比方说推到墙了继续推就输出错误信息。
二维数组的模拟,要注意细节。
1、读入一行字符。这里用的是cin.getline(),其语法为:cin.getline(字符指针(char*),字符个数N(int),结束符(char));
如果用string.h里面的getline的话,比方说getline(cin,str),存放到string类型的str中,这个一般用于读取整行的string,比如读取文件中。这里方便字符操作用cin.getline。
链接两篇文章,做深入了解。cin.getline、getline和gets的区别http://blog.csdn.net/ysf13579/article/details/23447945
C++中getline()、gets()等函数的用法 http://blog.csdn.net/JIEJINQUANIL/article/details/50802902
2、读取一行的操作,结束标识符\0的处理。这一题中可能读取一行为“POIU空格+回车”或者“POIU回车”或者“POIU空格+空格+回车”。。。有点无语。还有注意输出格式,仔细模拟。
#include<stdio.h>#include<iostream>#include<string.h>#include<ctype.h>using namespace std;int main(){ char z,pan[10][10]; int num=0,i=0,j=0,x=0,y=0,flag=1,count=0; while(1){ for(int i=0;i<5;i++){ cin.getline(pan[i],10);//注意此函数的用法 if(pan[i][0]=='Z') return 0; if(pan[i][4]=='\0') pan[i][4]=' ';//cin.getline()函数自动在结尾处添加结束标志'\0' } for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ if(pan[i][j]==' '){x=i,y=j;} } } //printf("x=%d y=%d\n",x,y); while(~scanf("%c",&z)){ if(z=='A'){ if(x>=1){pan[x][y]=pan[x-1][y];x=x-1;} else flag=0; }else if(z=='B'){ if(x<=3){pan[x][y]=pan[x+1][y];x=x+1;} else flag=0; }else if(z=='L'){ if(y>=1){pan[x][y]=pan[x][y-1];y=y-1;} else flag=0; }else if(z=='R'){ if(y<=3){pan[x][y]=pan[x][y+1];y=y+1;} else flag=0; }else if(z=='0') break; } getchar();//注意上面'ABLR0'之后的回车,消去回车 if(count++) printf("\n"); printf("Puzzle #%d:\n",count); if(flag){ pan[x][y]=' '; for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ if(j==4) printf("%c\n",pan[i][j]); else printf("%c ",pan[i][j]); } } }else{ printf("This puzzle has no final configuration.\n"); /*for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ if(j==4) printf("%c\n",pan[i][j]); else printf("%c ",pan[i][j]); } }*/ } num=0,x=0,y=0,flag=1; memset(pan,' ',sizeof(pan)); } return 0;}
阅读全文
0 0
- UVa227 谜题 Puzzle
- 谜题(Puzzle UVa227)
- Uva227-Puzzle-谜题
- 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
- 【51Nod】1347 旋转字符串
- SSH连接阿里云错误:Connection reset by peer解决
- 网络流之最大流模板
- indexheap
- 循环链表的简单实现
- Uva227-Puzzle-谜题
- tornado图片服务
- [HAOI2010]软件安装
- 并发(五):我也谈谈双重检查与对象的安全发布
- Scanner 文本文件读取与处理
- Ubuntu+Windows双系统启动配置
- LabVIEW体会
- 二分模板
- Linux下线程安全与可重入函数