我用了一天多的时间来做这个题,从连题都看不懂,到思路混乱,到写出来差不多能运行但是有bug的代码,再到将自己写的一百行代码缩减到五十行,再到算法的逐渐精炼,我不管我能写多少代码,但是我希望我写的代码都是精品,又想起那句话,重剑无锋,大巧无工,代码也是如此。
这个题我栽在格式上了,题目要求,在可执行输入后,每个输出之间需要有一个空行,我在第一个输出后直接加了个空行再开始的第二次的输入,这样是错误的,虽然我现在依然感觉并不错。。。但是oj题既然严格就按严格的来写算了
以下是我的代码
#include<stdio.h>
#include<string.h>
main()
{int i,n,m,x,y,sum,biaoji[20][20],count=1,diao;char qian[20][20]={0};while(scanf("%d",&n)&&n!=0){diao=0;sum=1;memset(biaoji,0,sizeof(biaoji));scanf("%d",&m);getchar();gets(qian[0]);if(qian[0][0]=='0')break;for(i=1;i<n;i++)gets(qian[i]);if(count>1)printf("\n");for(x=0;x<n;x++)for(y=0;y<m;y++){if(qian[x][y]=='*'){biaoji[x][y]=-1;continue;}if(y==0||x==0){biaoji[x][y]=sum;sum++;}if(x!=0&&y!=0&&(qian[x][y-1]=='*'||qian[x-1][y]=='*')){biaoji[x][y]=sum;sum++;}}printf("puzzle #%d:\n",count++);printf("Across\n");for(x=0;x<n;x++)for(y=0;y<m;y++){if(biaoji[x][y]==-1)continue;if(biaoji[x][y]>=0&&y==0||biaoji[x][y]>=0&&biaoji[x][y-1]==-1)printf("%3d.",biaoji[x][y]);if(biaoji[x][y]>=0&&biaoji[x][y+1]==-1||(biaoji[x][y]>=0&&y==m-1)){printf("%c\n",qian[x][y]);continue;}printf("%c",qian[x][y]);}printf("Down\n");for(x=0;x<n;x++)for(y=0;y<m;y++){i=x;if(biaoji[x][y]==-1||biaoji[x][y]==-2)continue;if(biaoji[x][y]>=0)for(;i<n;i++){if(biaoji[i][y]==-1)break;if(biaoji[i][y]>=0&&i==0||biaoji[i-1][y]==-1&&biaoji[i][y]>=0)printf("%3d.",biaoji[i][y]);if(biaoji[i][y]>=0&&biaoji[i+1][y]==-1||(biaoji[i][y]>=0&&i==n-1)){printf("%c\n",qian[i][y]);biaoji[i][y]=-2;continue;}printf("%c",qian[i][y]);biaoji[i][y]=-2;}}
}
}

232 Crossword Answers相关推荐

  1. UVA - 232 ​​​​​​​Crossword Answers

    Crossword Answers UVA - 232 题目传送门 直接按照要求寻找遍历一遍即可 AC代码: #include <cstdio> #include <iostream ...

  2. uva 232 - Crossword Answers(纵横迷宫)

    习题3-6 纵横字谜的答案(Crossword Answers, ACM/ICPC World Finals 1994, UVa232) 输入一个r行c列(1≤r,c≤10)的网格,黑格用" ...

  3. Uva 232.Crossword Answers

    下面的输出一定要是%3d的格式来输出序号 另外注意两个解之间的空格 1 #include <cstdio> 2 #include <cstring> 3 using names ...

  4. uva 232 Crossword Answers

    https://vjudge.net/problem/UVA-232 题意: 输入一个r行c列的网格,黑格用"*"来表示,每个白格都填有一个字母.如果一个白格的左边或者上边的相邻位 ...

  5. UVa 232 - Crossword Answers

    昨晚看了看,感觉还可以,就把这题写出来了,刚才交的的是WA了一次,原因是最后多了个空行.改了下空行出现的位置,AC了.不得不说UVA判的真严. #include<stdio.h> char ...

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

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

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

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

  8. I - Crossword Answers

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

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

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

最新文章

  1. SAP QM中阶之动态修改规则创建
  2. aMSN 0.97问题解决一则
  3. 前景检测算法_4(opencv自带GMM)
  4. MVC %%与%=%与区别
  5. javaweb 之javascript 结合
  6. Java 泛型 泛型的约束与局限性
  7. 修改linux默认启动级别(包括Ubuntu)
  8. 微信多开软件苹果版_微信PC版 v3.0.0.57 多开amp;消息防撤回
  9. 数据库,部分函数依赖,传递函数依赖,完全函数依赖,三种范式的区别
  10. 源码安装apache, jre, tomcat
  11. Python使用MongoDB简记
  12. C# this关键字(给底层类库扩展成员方法)
  13. C# 读取csv、xls、xlsx表格(读取到datatable、sql查询语句读取)
  14. 无领导小组讨论(LGD)九大经典案例3
  15. 支付宝小程序获取外部任意小程序appId及页面路径(附常见appid)
  16. 学简单python好学吗_python好学吗? 语法简单吗? 举个例子?
  17. uniapp开发微信小程序分享功能
  18. 基于金字塔的模板匹配算法(python)
  19. java三种循环的流程图画法总结(for,while,do-while循环)
  20. 单片机 常用名词解释

热门文章

  1. 【VS2015】链接器错误link2001
  2. Python学习笔记(一)——基本知识点
  3. Oracle性能优化3-sql优化一定要等价
  4. 【摘抄】其实我是间谍!
  5. 前端框架之Vue(1)-第一个Vue实例
  6. axios post参数为空
  7. 如何判断Linux服务器是否被入侵?
  8. bankbone 模型简单介绍
  9. Linux操作命令(二)
  10. 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之集群概念介绍(一)