C语言问题 题目12拼字游戏 问题描述拼字游戏历史悠久,能锻炼人的思维和提高单词记忆量。在欧

Python013

C语言问题 题目12拼字游戏 问题描述拼字游戏历史悠久,能锻炼人的思维和提高单词记忆量。在欧,第1张

C语言问题 题目12 拼字游戏 问题描述 拼字游戏历史悠久,能锻炼人的思维和提高单词记忆量。在欧美报纸的版面中经常会见到。本题只是简单地演示单组交叉词。所谓单组交叉词,是指两个单词交叉放置,一个水平放置,另一个垂直放置,交叉点是两个单词都共用一个字母,而且交叉点遵循交叉靠前原则,即这公用的字母尽量在水平单词的前方,然后也尽量在垂直单词的上方。例如:DEFER,PREFECT(前一个为水平单词)的交叉点是E,而PREFECT,EDFER的交叉点是R。双交叉词是指有两组单组交叉词,它们的水平单词放在同一行。试编程将输入的每四个一组的单词尽可能组成双交叉词。 输入:输入文件由若干行组成,每行有四个单词,按顺序每两个为一组,每组第一个单词为水平单词,每个单词由1到10个大写字母组成,单词之间用一个空格隔开。最后一行由一个"#"结束。 输出:输出文件由一系列双交叉词组成,每个水平单词之间隔三个空格。若不能构成双交叉词,则显示"Unable to make two crosses"。每组双交叉词间空一行。 输入样例: AT PART RIGHT BUT PEANUT BANANA VACUUM GREEDY # 输出样例: B PU AT RIGHT R T Unable to make two crosses 开发环境 采用C或C++实现,VC++6.0、Windows98/XP 基本要求 实现拼字游戏的程序,完成基本功能要求。 设计要求 要求有合理的算法设计,容错处理,可参考游戏经历增加相关功能。 拓展功能要求

宏定义字符串拼接可以使用宏运算##,即 #define strcat(x,y) x##y。

##运算符可以将两个记号(例如标识符)“粘”在一起,成为一个记号。如果其中一个操作数是宏参数,“粘合”会在当形式参数被相应的实际参数替换后发生。考虑下面的宏:

#define MK_ID(n) i##n

下面的声明使用MK_ID创建了3个标识符:

int MK_ID(1), MK_ID(2), MK_ID(3)

预处理后声明变为:

int i1, i2, i3

例如:

#include <stdio.h>

#define strcat(x,y) x##y

int main()

{

    int strcat(i,1),strcat(i,2)

    i1=10,i2=20

    printf("%d %d",i1,i2)

    return 0

}

/*运行结果:

10 20

*/

输入QAUI。

1、C语言中Q包含金字旁。

2、C语言中A包含草字头。

3、C语言中U包含门字。

4、C语言中I包含东字。

5、和五笔输入法原理一样,拼字后可输入“_”。