输入一个r行c列(1<=r,c<=10)的网格,黑格用"*"表示,每个白格都填有一个字母,如果一个白格的左边相邻的位置或者边上相邻的位置没有白格(可能是黑格,也可能除了网格边界), 则称这个白格是一个起始格。首先把所有起始格按照从上到下,从左到右的顺序编号为1,2,3…,如图。接下来要输出所由横向单词,这些单词必须从一个起始格开始,向右延伸到一个黑格的左边,或者整个网格的最右列。最后找出所有竖向单词。这些单词必须从一个起始格开始,向下延伸到一个黑格的上边或者整个网格的最下行。

#include<stdio.h>
#include<string.h>
int main()
{int r,c=0;char cw[12][12];int no[12][12];     //初始格位置记号 int count=0;while(scanf("%d%d",&r,&c)==2&&r){memset(no,0,sizeof(no));count++;int pos=1;     //起始格初值 for(int i=0;i<r;i++){for(int j=0;j<c;j++){scanf("%c",&cw[i][j]);if(cw[i][j]){continue;}if (j < 1 || cw[i][j - 1] == '*' || i < 1 || cw[i - 1][j] == '*') //左边相邻位置或者上边没有空格。{no[i][j] = pos++;}}getchar();    //接收换行符 } if(count!=1){printf("\n"); }printf("puzzle #%d:\n",count);printf("Across\n");for(int i=0;i<r;i++){int j=0;while(j<c){if(cw[i][j]=='*'||no[i][j]==0){j++;continue;}printf("%3d.%c",no[i][j],cw[i][j]);j++;while(j<c&&cw[i][j]!='*'){printf("%c",cw[i][j]);j++; }printf("\n");}}printf("Down\n");for(int i=0;i<r;i++){for(int j=0;j<c;j++){if(cw[i][j]=='*'||no[i][j]==0){continue;}printf("%3d.%c",no[i][j],cw[i][j]);no[i][j]=0;int k=i+1;while(k<r&&cw[k][j]!='*') {printf("%c",cw[k][j]);no[k][j]=0;k++;}printf("\n");}}}return 0;
}

纵横字谜的答案(Crossword Answers)相关推荐

  1. UVA232 纵横字谜的答案 Crossword Answers 题解

    题意翻译 输入一个r 行c 列(1<r,.c<10) 的网格,黑格用"*"每个白格都填有一个字母.如果一个白格的左边相邻位置或者上边相邻位置没有白格(可能是黑格,也可能 ...

  2. 纵横字谜的答案(Crossword Answers UVa232)

    做到这个题目的时候发现和前面的那个题目非常的像,都是字符都是表格.依然是用一个二维字符数组,储存表格的状况,然后进行搜索判断. 先写一下我犯的错误吧,读者看到我犯过的错误之后说不定就找到自己的方法了呢 ...

  3. 纵横字谜的答案 (UVa232)

    纵横字谜的答案 Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit  Status De ...

  4. 《算法竞赛入门经典》(第2版) 习题3-6 纵横字谜的答案

    题目 习题3-6 纵横字谜的答案(Cross Answers,ACM/ICPC World Final 1994, UVa232)ps: Final???!!!难道是1994年世界总决赛的第一题-哈哈 ...

  5. UVa232纵横字谜的答案

    //纵横字谜的答案 #include <stdio.h> #include <ctype.h> int main (){int r,c;int count = 0; while ...

  6. 习题3-6 纵横字谜的答案 UVa232

    算法竞赛入门经典(第2版)第3章 数组和字符串 习题3-6 纵横字谜的答案 UVa232 感悟. 1.决定自此,每做一道,必从网站下载该道的PDF文件,废弃从别处下载的PDF文件,因其错误太多. 2. ...

  7. 纵横字谜的答案(Uva232)

    纵横字谜的答案(Uva232) 题目UVa232,题目考察点时二维数组的使用.注意点是需要读懂题目意思,关键点是起始格需要用额外用一个数组存储.然后根据横向和纵向单词的定义,结合起始格,循环遍历打印输 ...

  8. 习题3-6 纵横字谜的答案(Crossword Answers, ACM/ICPC World Finals 1994, UVa232)

    原题vjudge 输入一个r行c列(1≤r,c≤10)的网格,黑格用"*"表示,每个白格都填有一个字母. 如 果一个白格的左边相邻位置或者上边相邻位置没有白格(可能是黑格,也可能出 ...

  9. UVa232 Crossword Answers(纵横字谜的答案)

    题意: 输入一个r行c列的网格,*表示黑格,字母表示白格.若一个白格位于边界或上方是黑格或左方是黑格,则称其为起始格.找出所有横向单词和竖向单词,其必须从一个起始格开始,到黑格或网格边界为止. 思路: ...

最新文章

  1. C#中几种换行符,不同操作系统各不相同【转】
  2. wordpress漏洞_WordPress XSS漏洞可能导致远程执行代码(RCE)
  3. 世界杯,世界共同的游戏!
  4. 异常的捕获 try...catch java
  5. linux内核调度,Linux内核的三种调度策略
  6. 售价17999元起,华为Mate X2发布;程序员10万“买”了个北京户口;赏金猎人获苹果5000美元奖励 | 极客头条...
  7. JY游戏开发,案例之 《下到一百层》,欢迎大家品赏。
  8. php递归mysql查询_PHP MySQL递归查询
  9. m3u8 TS 解密合并转码mp4,支持在线 ,UC、QQ等本地缓存
  10. 核心单词Word List 7
  11. uni-app在华为应用市场上架审核无法通过,涉及个人信息:IMEI用户数据收集问题
  12. java基础-1 基础知识
  13. XXE漏洞的详解与利用
  14. SSM框架的介绍与搭建
  15. 拼多多“百亿农研”开辟发展新路径
  16. Ubuntu设置中没有网络标识(设置中缺少网络设置(Wired))
  17. 宏观经济调控政策笔记+
  18. storm滑动时间窗口实现
  19. 5.Linux常用配置文件(包含网络/Linux文件权限等)
  20. 时间复杂度 P/NP/NPC

热门文章

  1. 戴森VR体验店:以科技开启未来无限可能 沉浸式购物场景,引领零售新体验
  2. R中安装Rattle包的步骤
  3. 抖音新账号做好这七点
  4. error MSB8020: 无法找到 v142 的生成工具(平台工具集 =“v142”)
  5. 闲聊飞思卡尔ADC模块
  6. 微信小程序设置字体无效_小程序字体粗细无效 小程序教程
  7. 医院OA系统解决方案
  8. 含有铍青铜的高强度合金钢
  9. QEMU 上运行 RISC-V Linux 内核
  10. 【感悟】——人生路,昂首走