C语言实现成语接龙代码
时间: 2023-10-26 17:16:14 浏览: 176
以下是一个简单的 C 语言实现成语接龙的示例代码:
```c
#include<stdio.h>
#include<string.h>
// 定义成语数组
char idioms[][8] = {"天高任鸟飞", "鱼跃龙门", "鹤立鸡群", "井底之蛙", "九牛一毛", "画蛇添足", "守株待兔", "李代桃僵"};
// 判断两个成语是否可以接龙
int canConnect(char idiom1[], char idiom2[]) {
if (idiom1[strlen(idiom1) - 1] == idiom2[0]) {
return 1;
}
return 0;
}
int main() {
// 随机选择一个成语作为起始成语
int startIndex = rand() % 8;
printf("起始成语:%s\n", idioms[startIndex]);
// 记录当前接龙的成语
char currentIdiom[8];
strcpy(currentIdiom, idioms[startIndex]);
while (1) {
// 让用户输入成语
printf("请输入成语:");
char inputIdiom[8];
scanf("%s", inputIdiom);
// 判断输入的成语是否合法
if (strlen(inputIdiom) != 4) {
printf("请输入长度为4的成语!\n");
continue;
}
// 判断输入的成语是否存在于成语数组中
int isInArray = 0;
for (int i = 0; i < 8; i++) {
if (strcmp(inputIdiom, idioms[i]) == 0) {
isInArray = 1;
break;
}
}
if (!isInArray) {
printf("该成语不存在,请重新输入!\n");
continue;
}
// 判断输入的成语是否可以接龙
if (!canConnect(currentIdiom, inputIdiom)) {
printf("该成语无法接龙,请重新输入!\n");
continue;
}
// 更新当前接龙的成语,并输出
strcpy(currentIdiom, inputIdiom);
printf("接龙成功,当前成语:%s\n", currentIdiom);
}
return 0;
}
```
注:这只是一个简单的示例代码,实际应用中还需要考虑更多的情况,比如输入的成语是否已经使用过等。
阅读全文