这一题的话,输出的时候,我们要按照3位输出,不能按照两位,因为是10*10的网格,所以就是100位,不管有没有100的起始格,它都是按照3位进行输出的,从题上的输出可以看到,不然的话,就会PE。

然后我们对于它的起始网格的处理,我们可以设置一个对应的网格,然后判断填数就可以了,然后我们判断的时候肯定要否定*号,所以就在判断语句之内加上num [i] [j] =-1的赋值就可以了。然后我们再对于它是否是起始格进行赋值,因为如果是-1的话, 我们也是要输出这个字母的,对于是零的格子,我们就不再进行输出了。

此外加上一个vis数组,来判断是否输出过就行了,对于总想输出来说的话,题目中实际上还是按照起始格的顺序进行的,所以我们纵向输出的时候还是按照从上往下横着扫,但是每扫到一个起始格,我们就纵向进行判断输出。

以及纵向输出之前,vis清零还是十分关键的。

#include <stdio.h>
#include <string.h>
int num[11][11];
char puzz[11][11];
int vis[11][11]; int main()
{
int r,c;
int cnt,ord=1;
while (scanf("%d",&r)!=EOF&&r!=0) {
scanf("%d",&c);
cnt=1;
memset(num,0,sizeof(num));
memset(vis,0,sizeof(vis));
for (int i=0;i<r;i++)
scanf("%s",puzz[i]);
for (int i=0;i<r;i++) {
for (int j=0;j<c;j++) {
if (puzz[i][j]!='*') {
num[i][j]=-1;//表明它是字母
if (i==0||j==0) {
num[i][j]=cnt++;
continue;
}
if (puzz[i-1][j]=='*'||puzz[i][j-1]=='*')
num[i][j]=cnt++;
}
}
}
if (ord!=1) printf("\n");
printf("puzzle #%d:\nAcross\n",ord++);
for (int i=0;i<r;i++) {
for (int j=0;j<c;j++) {
if (num[i][j]>0&&!vis[i][j]) {
vis[i][j]=1;
printf("%3d.",num[i][j]);
int k=j;
while (num[i][k]!=0) {
printf("%c",puzz[i][k]);
vis[i][k]=1;
k++;
}
printf("\n");
}
}
}
memset(vis,0,sizeof(vis));
printf("Down\n");
for (int i=0;i<r;i++) {
for (int j=0;j<c;j++) {
if (num[i][j]>0&&!vis[i][j]) {
vis[i][j]=1;
printf("%3d.",num[i][j]);
int k=i;
while (num[k][j]!=0) {
printf("%c",puzz[k][j]);
vis[k][j]=1;
k++;
}
printf("\n");
}
}
} }
return 0;
}
// for (int i=0;i<r;i++) {
// for (int j=0;j<c;j++) {
// printf("%3d",num[i][j]);
// }
// printf("\n");
// }

UVa-232-纵横字谜的答案的更多相关文章

  1. UVa 714 Copying Books - 二分答案

    求使最大值最小,可以想到二分答案. 然后再根据题目意思乱搞一下,按要求输出斜杠(这道题觉得就这一个地方难). Code /** * UVa * Problem#12627 * Accepted * T ...

  2. Uva 232 一个换行WA 了四次

    由于UVA OJ上没有Wrong anwser,搞的多花了好长时间去测试程序,之前一直以为改OJ有WA,后来网上一搜才知道没有WA,哎哎浪费了好长时间.此博客用来记录自己的粗心大意. 链接地址:htt ...

  3. UVA 232 Corssword Answer

    题意:输入m*n大小的字符串(里面有*,*为黑格,其他为白格),然后对它编号,编号规则为从左到右,从上往下,且左边或上面没有白格(可能是黑格或越界),如下图: 注意: ①除第一次输出答案外,其余每次输 ...

  4. UVA 12097 Pie(二分答案)

    题目链接: 这道题虽然不是一道典型的二分答案题,但同样也可以用二分答案来做. 来二分面积为$area$的派,然后看看条件是否矛盾. 与其矛盾的便是$f+1$个人是否每个人都会有. 一个半径为$r$的派 ...

  5. UVA 12124 Assemble(二分答案)

    题目链接:https://vjudge.net/problem/UVA-12124 垃圾vjudge毁我青春!! 首先这道题是解决“最小值最大”的问题,所以要二分答案. 在这里我们二分$quality ...

  6. UVa 232 Crossword Answers

     Crossword Answers  A crossword puzzle consists of a rectangular grid of black and white squares and ...

  7. Crossword Answers UVA - 232

    题目大意 感觉挺水的一道题.找出左面右面不存在或者是黑色的格子的白各,然后编号输出一横向单词和竖向单词(具体看原题) 解析 ①找出各个格子的编号 ②对每个节点搜索一下 ③输出的时候注意最后一个数据后面 ...

  8. 【习题 3-6 UVA - 232】Crossword Answers

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 模拟题.注意场宽为3 [代码] #include <bits/stdc++.h> using namespace std ...

  9. 码书:编码与解码的战争 PDF 下载

    码书:编码与解码的战争 PDF 下载 下载地址:https://pan.baidu.com/s/14Y_krHh-unOv4g2KYFFDgQ 如需分享码:[打开微信]->[扫描右侧二维码]-& ...

随机推荐

  1. python如何用pip安装模块

    pip去python官网下载 我想写的是安装后怎么做,假设我们要安装pymysql模块 在python交互式模式中运行pip install pymysql 会抛出 语法错误,不知为何. 此时应该找到 ...

  2. java的无序机制

    简单说一下上面提到的无序写,这是jvm的特性,比如声明两个变量,String a; String b; jvm可能先加载a也可能先加载b.同理,instance = new Singleton();可 ...

  3. JQuery | trigger() 方法

    trigger() 方法触发被选元素的指定事件类型. 语法格式: trigger(type,[data]) type:触发事件类型 [data]:可选项,表示在触发事件时传递给函数的附加参数. 实例: ...

  4. python异常之EOFError: Ran out of input

    出现该问题一般是由于你在以写模式打开文件后未关闭的情况下又去以读模式操作该文件时报的错误 # coding = utf-8 import pickle #定义一个boy类 class boy(): d ...

  5. YII报错笔记:<pre>PHP Notice &#039;yii\base\ErrorException&#039; with message &#039;Uninitialized string offset: 0&#039; in /my/test/project/iot/vendor/yiisoft/yii2/base/Model.php:778

    YII常见报错笔记 报错返回的代码如下: <pre>PHP Notice 'yii\base\ErrorException' with message 'Uninitialized str ...

  6. 502的错误其实不是nginx的问题,要从后端找原因。php-cgi进程数不够用、php执行时间长、或者是php-cgi进程死掉,都会出现502错误。

    502的错误其实不是nginx的问题,要从后端找原因.php-cgi进程数不够用.php执行时间长.或者是php-cgi进程死掉,都会出现502错误.

  7. 剑指 Offer

    3.1 找出数组中重复的数 来源:AcWing 题目描述 给定一个长度为 n 的整数数组 nums,数组中所有的数字都在 0∼n−1 的范围内. 数组中某些数字是重复的,但不知道有几个数字重复了,也不 ...

  8. toLua学习

    toLua学习通用的过程//开始LuaState lua = new LuaState();lua.Start();--在这个位置插入lua的具体操作--//结束lua.CheckTop();lua. ...

  9. 通过Chrome执行watir-webdriver

    1.http://code.google.com/p/chromedriver/downloads/list  下载chromedriver驱动文件chromedriver.exe 2.把驱动文件放在 ...

  10. go查询mysql到list<map>

    func selects() { db, err := sql.Open("mysql", "root:root@tcp(127.0.0.1:3306)/test?cha ...