UVA - 232 Crossword Answers
2016-07-08 19:14
302 查看
UVA - 232 Crossword Answers
题目大意:给定一个网格 确定一些空格 和 字母 按从到右 从上到下的顺序 给每个词语编号 然后横向输出和纵向输出解题思路:顺序编号完 输出即可
#include <stdio.h> #include <iomanip> using namespace std; int main(){ char a[105][105]; int b[105][105]; int n,m; int t = 1; int p = 0; int s = 1; while (1){ s = 1; scanf("%d", &n); if (n == 0) break; scanf("%d", &m); getchar(); for (int i = 0;i < n;i++){ for (int j = 0;j < m;j++) scanf("%c", &a[i][j]); getchar(); } for(int i = 0;i < n;i++) for (int j = 0;j < m;j++) if (i == 0 && a[i][j] != '*' || j == 0 && a[i][j] != '*' || a[i-1][j] == '*' && a[i][j] != '*' || a[i][j-1] == '*' && a[i][j] != '*'){ b[i][j] = s; s++; } if (t != 1) printf("\n"); printf("puzzle #%d:\n", t); t++; printf("Across\n"); for (int i = 0; i < n ;i++){ for (int j = 0;j < m;j++){ if ( j == 0 && a[i][j] != '*' || a[i][j-1] == '*' && a[i][j] != '*' ) { printf("%3d.", b[i][j]); while(a[i][j] != '*' && j < m) printf("%c", a[i][j++]); printf("\n"); } } } int l = 1; printf("Down\n"); for (int i = 0; i < n;i++) for (int j = 0; j < m; j++ ){ if (i == 0 && a[i][j] != '*' || a[i-1][j] == '*' && a[i][j] != '*'){ printf("%3d.", b[i][j]); // if (a[i][j] != '*') // printf("%c", a[i][j]); for (int k = i;k < n;k++){ if ( a[k][j] == '*') break; //b[k][j] = 0; if ( a[i][j] != '*') printf("%c", a[k][j]); } printf("\n"); } } } }
相关文章推荐
- ios 设置tableViewcell中的图片大小
- UVA - 10340 All in All
- 关于SVN代码提交粒度和频率的思考
- UVA - 1587 Box
- UVA - 1368 DNA Consensus String
- linux 目录结构
- UVA - 227 Puzzle
- UVA - 455 Periodic Strings
- Android 防止重复按钮点击
- UVA - 1225 Digit Counting
- 指数取模的方法
- UVA - 1585 Score
- 如何为Linux安装Go语言
- base之basictypes.h基本数据类型 (1下)
- 6步实现laravel图片上传
- python模块之时间模块
- android studio adb 端口被占用http://blog.csdn.net/u012005313/article/details/46964167
- DirectX 因素:了解 XAudio2 中的筛选器
- 2016.7.8模拟赛总结
- js form对象的三种获取方式