博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA232 UVALive5171 POJ1888 Crossword Answers
阅读量:5794 次
发布时间:2019-06-18

本文共 1916 字,大约阅读时间需要 6 分钟。

World Finals >> 1994 - Phoenix

问题链接:。基础训练级的问题,用C语言编写程序。

典型单词谜题中,计算单词个数问题。

给网格扩充了四个方向的边界。这样可以简化程序逻辑,使得边缘格的处理逻辑与中间格的处理逻辑相同。使得判断网格是否为单词的开始网格条件统一;同时,计算行单词和列单词的逻辑也变得简单。

另外一点就是要明确单纯开始网格的条件,以及如何计算单词的序号(序号增加的条件)。

程序中,将边界设置为“*”,程序逻辑比较简洁。

AC的C语言程序如下:

/* UVA232 UVALive5171 POJ1888 Crossword Answers */#include 
#define MAXN 10char grid[MAXN+2][MAXN+2];/* 输出行单词 */void rowoutput(int no, int row, int col){ printf("%3d.", no); while(grid[row][col] != '*') putchar(grid[row][col++]); putchar('\n');}/* 输出列单词 */void coloutput(int no, int row, int col){ printf("%3d.", no); while(grid[row][col] != '*') putchar(grid[row++][col]); putchar('\n');}int main(void){ int r, c, caseno=0, wcount, i, j; while(scanf("%d", &r) != EOF && r != 0) { /* 已经读入行,继续读入列 */ scanf("%d", &c); getchar(); /* 读入网格 */ for(i=1; i<=r; i++) { for(j=1; j<=c; j++) grid[i][j] = getchar(); getchar(); /* '\n' */ } // 设置边界 for(i=0; i
1) printf("\n"); printf("puzzle #%d:\n", caseno); /* 行计算并且输出结果 */ printf("Across\n"); wcount = 0; for(i=1; i<=r; i++) { for(j=1; j<=c; j++) if(grid[i][j] != '*' && (grid[i-1][j] == '*' || grid[i][j-1] == '*')) { wcount++; if(grid[i][j-1] == '*') rowoutput(wcount, i, j); } } /* 列计算并且输出结果 */ printf("Down\n"); wcount = 0; for(i=1; i<=r; i++) { for(j=1; j<=c; j++) if(grid[i][j] != '*' && (grid[i-1][j] == '*' || grid[i][j-1] == '*')) { wcount++; if(grid[i-1][j] == '*') coloutput(wcount, i, j); } } } return 0;}

转载于:https://www.cnblogs.com/tigerisland/p/7564517.html

你可能感兴趣的文章
如何在Eclipse中查看Android API源码以及support包源码
查看>>
6月27日CTO俱乐部下午茶印象
查看>>
Ubuntu 分区方案参考
查看>>
分享自制的C#和VB Code互转工具
查看>>
什么样的日志才是好日志
查看>>
dll和ocx比较
查看>>
排序算法c语言描述---冒泡排序
查看>>
OpenGL ES 系列教程
查看>>
Effective STL中文版 译序
查看>>
NodeJS应用程序设置为window service-辅助工具(C#)
查看>>
如何用ATL创建ActiveX控件
查看>>
又见到面试的毕业生
查看>>
广州项目实施步骤I_练习安装 CentOS x64 6.4
查看>>
solr4使用时常见异常及处理(转)
查看>>
C++ 排序函数 sort(),qsort()的使用方法
查看>>
atitit。获取表格的字段注释metadata的原理以及AND 字段表格描述文档方案
查看>>
那些年实用但被我忘掉javascript属性.onresize
查看>>
AngularJS是什么?
查看>>
protobuf for java
查看>>
蜕变成蝶~Linux设备驱动中的阻塞和非阻塞I/O
查看>>