这题的话,我们读入的时候,可以用scanf单个读入字符,也可以用getchar函数来读入。
scanf
scanf读入串字符的时候,遇到空格、回车和TAB等空白字符就会停止读入,但是如果读入单个字符就不会出现读入结束的情况,因为,我们就是用scanf函数来读入单个字符的,读入结果很理想。
getchar
如果是getchar的话,getchar本身就是读入字符,所以遇到回车和空格并没有什么问题。
注意

  1. 操作可以是多行的,所以注意对换行的处理
  2. 操作字符串里面读入至零之后,后面的回车要用getchar吸收,不然就作为下一组的第一个数据被读入了
  3. 对于操作我们一定要把所有的都读完,不能因为越界,就输出,然后中断读入,我们可以设置标记为否,然后一直读入,读完不做操作就行了
  4. getchar的速度快于scanf的速度
  5. PE问题,每个谜题的输入之间要有一个空行,第一行之前不要

getchar()版

#include <stdio.h>
char puzz[7][7];
int main()
{int br,bc,er,ec,flag,cnt=1;char ch;while ((puzz[0][0]=getchar())!=EOF&&puzz[0][0]!='Z') {for (int i=0;i<5;i++) {for (int j=0;j<6;j++) {if (i||j) puzz[i][j]=getchar();if (puzz[i][j]==' ') {br=i;er=i;bc=j;ec=j;}}}flag=1;while ((ch=getchar())!=EOF&&ch!='0') {if (ch=='\n') continue;if (flag==1) {switch (ch) {case 'A':er--;break;case 'B':er++;break;case 'L':ec--;break;case 'R':ec++;break;default:flag=0;break;}if (flag==0||er<0||er>4||ec<0||ec>4) {flag=0;continue;}puzz[br][bc]=puzz[er][ec];puzz[er][ec]=' ';br=er;bc=ec;}}getchar();if (cnt!=1) {printf("\n");}printf("Puzzle #%d:\n",cnt++);if (flag==1) {for (int i=0;i<5;i++) {for (int j=0;j<6;j++) {printf("%c",puzz[i][j]);if (j<4) printf(" ");}}    }else printf("This puzzle has no final configuration.\n");}return 0;
}

scanf()版

#include <stdio.h>
char puzz[7][7];
int main()
{int br,bc,er,ec,flag,cnt=1;char ch;while (scanf("%c",&puzz[0][0])&&puzz[0][0]!='Z') {for (int i=0;i<5;i++) {for (int j=0;j<6;j++) {if (i||j) scanf("%c",&puzz[i][j]);if (puzz[i][j]==' ') {br=i;er=i;bc=j;ec=j;}}}
//      for (int i=0;i<5;i++) {//          for (int j=0;j<6;j++) {//              printf("%c",puzz[i][j]);
//          }
//      }flag=1;while (scanf("%c",&ch)&&ch!='0') {if (ch=='\n') continue;if (flag==1) {switch (ch) {case 'A':er--;break;case 'B':er++;break;case 'L':ec--;break;case 'R':ec++;break;default:flag=0;break;}if (flag==0||er<0||er>4||ec<0||ec>4) {flag=0;continue;}puzz[br][bc]=puzz[er][ec];puzz[er][ec]=' ';br=er;bc=ec;}}getchar();if (cnt!=1) {printf("\n");}printf("Puzzle #%d:\n",cnt++);if (flag==1) {for (int i=0;i<5;i++) {for (int j=0;j<6;j++) {printf("%c",puzz[i][j]);if (j<4) printf(" ");}}  }else printf("This puzzle has no final configuration.\n");}return 0;
}

转载于:https://www.cnblogs.com/xyqxyq/p/10350146.html

UVa-227-谜题相关推荐

  1. UVA - 227 Puzzle

    Puzzle UVA - 227 题目传送门 注意点:每两个输出点间有一个换行,但最后一个输出无换行 恶心模拟题,很卡输入输出!!! AC代码1:(自己的代码,提交时需要选择C++11) #inclu ...

  2. 【UVA - 227】Puzzle (模拟,水题)

    题干: Puzzle  A children's puzzle that was popular 30 years ago consisted of a 5x5 frame which contain ...

  3. π-Algorithmist分类题目(1)

    原题网站:Algorithmist,http://www.algorithmist.com/index.php/Main_Page π-Algorithmist分类题目(1) Sorting UVAL ...

  4. WaWa的奇妙冒险(第一周集训自闭现场)

    第一周周记 (一)例题记录 A-Download Manager (水题) HDU - 3233 Input Output Sample Input Sample Output 理解 AC代码 B-J ...

  5. 紫书《算法竞赛入门经典》

    紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...

  6. 习题3-1至习题3-5

    注:题目来自刘汝佳的<算法竞赛入门经典第2版>,在vjudge选择OJ平台UVA进行提交.必要的时候会写解题思路,简单的题纯粹就做个记录. 3-1 UVA1585 #include< ...

  7. 初学者acm的练习题指南

    上机练习题参考题 忘了在哪找的啦~~希望对大家有帮助呦 <!--[if !supportLists]-->1.    <!--[endif]-->Programming Bas ...

  8. 汉字对应的ASCLL

    printf("%c%c*%c%c",206,196,208,249);输出的是 文*轩 . 以下代码有bug,仅供理解 #include <stdio.h> #inc ...

  9. floyd 判圈算法 UVa 11549 计算器谜题

    题目http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  10. UVA 11549 calcular conundrum 计算机老谜题

    题目大意 用一个老式计算器,只显示n位数字,输入一个整数k后计算,计算器会反复平方,直至溢出,每次溢出只显示最高的n位,计算器会一直平方下去,直到出现重复的数字 分析 题目中已经暗示了计算器显示的数会 ...

最新文章

  1. pandas使用groupby函数对dataframe进行分组统计、使用as_index参数设置分组聚合的结果中分组变量不是dataframe的索引(index)
  2. db2中的几个转义字符
  3. python fileinput_python fileinput模块
  4. 数组的选择--固定大小数组模板array存在的意义!
  5. tensorflow 测试
  6. mysql编译安装 rpm安装_Linux常用工具小结:(2) Mysql的rpm安装和编译安装
  7. Codepen 每日精选(2018-4-22)
  8. Linux下mysql整库备份
  9. 扫地机器人开年之战:新品初现,战局微调
  10. 2019最新 Java商城秒杀系统的设计与实战视频教程(SpringBoot版)_1-4系统的整体演示...
  11. 深度神经网络 卷积神经网络_改善深度神经网络
  12. cad统计多线段总长度插件_新手入门,学习CAD必须掌握,教你使用标注命令,绘图效率翻一倍...
  13. 汽车企业售后业务数字化转型,究竟有多卷
  14. mdt 计算机名_配置 MDT 部署共享规则
  15. Mac m1 Kettle安装
  16. 微信支付:小微商户申请入驻第一步:平台证书序列号的获取
  17. 三星手机如何通过Exchange账户同步联系人到手机中?
  18. React报错 React Hook useEffect has a missing dependency: ‘obj‘
  19. 算法题——立方体的体对角线穿过多少个正方体?
  20. 电视常用接口(TV,AV,S-Video,YCbCr/PCbCr,VGA,Scart,DVI/HDMI)

热门文章

  1. 史上最拉风年货?苏宁门店私人飞机开售 网友:这个真香不了吧
  2. 借助拳王虚拟项目公社,自动发货系统,卖虚拟教程产品,实现全自动化赚钱的秘密
  3. 贝叶斯网的R实现( Bayesian networks in R)bnlearn(2)
  4. 马尔可夫链的扩展 贝叶斯网络 (Bayesian Networks)
  5. AIR中文帮助 第十章. 窗体(Windows)和菜单
  6. live555 windows下编译以及修订
  7. python tk text 自动换行_Python tkinter之Text
  8. matlab朴素贝叶斯手写数字识别_从“手写数字识别”学习分类任务
  9. 【Flink】Flink 1.12.2 源码浅析 : TaskExecutor
  10. 【SpringCloud】 failed to req API:/nacos/v1/ns/instance after all servers code:500 msg Read timed out