[UVA232]Crossword Answers
来源:互联网 发布:java模板引擎排行 编辑:程序博客网 时间:2024/04/27 21:31
吸取了上一次的经验,这道题一共提交了两次得到AC(好开心,第一次这么少的次数就A了)。
注意事项:
1.输入上,这次非常的严格。输出上还是严格的按照要求来, 比如最后没有另外的空行啊, 序号的输出可以用%3d来输出(没尝试过其他的,scanf(“%3dxxxx”)通过了)。
技巧:
1.在CROSSWORD的后面一列和最下面一列用’*’填充,来简化输出的复杂度。
2.虽然题目要求排序,但是不一定要读出来每个单词之后排序,鉴于题目的数据量很小(10×10),可以遍历每个格子,因为序号是自左向右自上而下排列的,所以只要按照这个顺序遍历即可。
最后附上代码。
#include <stdio.h>int main(void){ int puzzle_num[11][11] = { 0 }; char puzzle[11][11]; int count_puzzle, count_total, total_row, total_column, count_row, count_column, temp_row; count_puzzle = 0; while (scanf("%d", &total_row)) { if (total_row == 0) break; scanf(" %d", &total_column); while (getchar() != '\n'); if (count_puzzle++ != 0) printf("\n"); printf("puzzle #%d:\n", count_puzzle); for (count_row = 0; count_row < total_row; count_row++) { gets(puzzle[count_row]); puzzle[count_row][total_column] = '*'; } for (count_column = 0; count_column < total_column; count_column++) puzzle[total_row][count_column] = '*'; for (count_total = 1, count_row = 0; count_row < total_row; count_row++) for (count_column = 0; count_column < total_column; count_column++) if (count_row - 1 < 0 || count_column - 1 < 0 || puzzle[count_row - 1][count_column] == '*' || puzzle[count_row][count_column - 1] == '*') if (puzzle[count_row][count_column] != '*') puzzle_num[count_row][count_column] = count_total++; printf("Across\n"); for (count_row = 0; count_row < total_row; count_row++) for (count_column = 0; count_column < total_column; count_column++) { if (puzzle[count_row][count_column] == '*') continue; printf("%3d.", puzzle_num[count_row][count_column]); while (puzzle[count_row][count_column] != '*') printf("%c", puzzle[count_row][count_column++]); printf("\n"); } printf("Down\n"); for (count_row = 0; count_row < total_row; count_row++) for (count_column = 0; count_column < total_column; count_column++) { if (puzzle[count_row][count_column] == '*' || (count_row - 1 > -1 && puzzle[count_row - 1][count_column] != '*')) continue; temp_row = count_row; printf("%3d.", puzzle_num[count_row][count_column]); while (puzzle[temp_row][count_column] != '*') printf("%c", puzzle[temp_row++][count_column]); printf("\n"); } } return 0;}
0 0
- uva232 - Crossword Answers
- [UVA232]Crossword Answers
- UVa232 Crossword Answers
- UVa232 Crossword Answers AC
- UVa232-Crossword Answers
- 3.6 Crossword Answers UVa232
- UVa232——Crossword Answers
- UVA232 UVALive5171 POJ1888 Crossword Answers
- 习题3-6 UVa232 Crossword Answers
- UVa232 Crossword Answers——C++版本
- 纵横字谜的答案(Crossword Answers UVa232)
- [UVa232]Crossword Answers用两个数组解决问题
- Crossword Answers, ACM/ICPC World Finals 1994, UVa232
- UVa232 Crossword Answers——C语言版本
- Crossword Answers, ACM/ICPC World Finals 1994, UVa232
- Crossword Answers
- Crossword Answers
- Crossword Answers
- C++进程学习:fork
- 【CF ECR8-D】Magic Numbers(数位dp)
- 去耦电容和旁路电容详解
- cglib 总结1
- Git
- [UVA232]Crossword Answers
- Android 屏幕适配一二
- CODEVS PROBLEM1299切水果
- 程序员面试常见问题及回答技巧
- jsp+servlet中乱码问题
- AngularJS 源码分析1
- 错误记录——几个相似变量名混淆
- AngularJS 源码分析2
- android--登录--验证