小紫书 习题 3-6(UVA 232) 纵横字谜的答案(Crossword Answers)
2015-09-07 00:20
423 查看
写得很矬,写across一种写法,写down一种写法,down那个是后来改的,没注意到是按数字顺序排的,所以感觉down的那种方法适用性更广。
最后UVA居然会报PE,傻逼地没有看到每个字母的数字编号是怎么样的,以为是在前面加两个空格,然而只是一个%3d就ok的事情。
很矬的AC代码:
最后UVA居然会报PE,傻逼地没有看到每个字母的数字编号是怎么样的,以为是在前面加两个空格,然而只是一个%3d就ok的事情。
很矬的AC代码:
#include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> using namespace std; int main() { int cse = 1; while (1) { int r = -1, c = -1, cnt = 1; char grid[10][11]; int cntpos[10][11]; memset(cntpos, 0, sizeof(cntpos)); scanf("%d", &r); if (r == 0) break; scanf("%d", &c); for (int i = 0; i < r; i++) scanf("%s", &grid[i]); for (int j = 0; j < c; j++) { if (cntpos[0][j] == 0 && grid[0][j] != '*') cntpos[0][j] = cnt++; } for (int i = 1; i < r; i++) { for (int j = 0; j < c; j++) { if (j == 0 && grid[i][j] != '*') cntpos[i][j] = cnt++; else if (grid[i - 1][j] == '*'&&grid[i][j] != '*') cntpos[i][j] = cnt++; else if (grid[i][j - 1] == '*'&&grid[i][j] != '*') cntpos[i][j] = cnt++; } } if (cse != 1) printf("\n"); printf("puzzle #%d:\n", cse++); printf("Across\n"); for (int i = 0; i < r; i++) { for (int j = 0; j < c; j++) { if (grid[i][j] != '*') { printf("%3d.", cntpos[i][j]); for (; grid[i][j] != '*'&&j < c; j++) { printf("%c", grid[i][j]); } printf("\n"); /*if (j < c&&grid[i][j] == '*') j++;*/ } } } printf("Down\n"); for (int i = 0; i < r; i++) { for (int j = 0; j < c; j++) { if ((i == 0 || grid[i - 1][j] == '*') && grid[i][j] != '*') { printf("%3d.", cntpos[i][j]); for (int k = i; k < r; k++) { if (grid[k][j] == '*') break; printf("%c", grid[k][j]); } printf("\n"); } } } } // system("pause"); return 0; }
相关文章推荐
- udp语法
- 网络部分(一)
- j2ee学习笔记与心得
- Vim编辑器使用总结
- 服务器架设笔记——搭建用户注册和验证功能
- 网页防止另存为,屏蔽右键,防止复制代码,防止被人frame等网页代码
- linux运维练习-vim编辑和文件查找(8月30)
- 多线程聊天
- java学习之三
- C++ template overload
- Shell基础之-grep命令
- 2015.8.30——张佳莉
- Ember.js 入门指南——目录
- Ember.js 入门指南——目录
- HDU 1025 Constructing Roads In JGShining's Kingdom(LIS经典题)
- const、static、extern三个关键字
- java 缓冲字符流 及 JAVA
- struts.xml详解
- 题目:单词接龙
- 找出身高差最小的两个人