规则:先规定出题的字数,比如这一轮出题必须在四个字以内,也就是说出题的人可以任说一句话。“我是好人”那么答题人必须在5秒钟之内把刚才的那句话反过来说,也就是“人好是我”,如果说不出或者说错就算失败。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define MAX_LEN 100 // 最大字符串长度
void reverse(char *str) {
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
char temp = str[i];
str[i] = str[len - 1 - i];
str[len - 1 - i] = temp;
}
}
int main() {
srand(time(NULL)); // 初始化随机种子
char input[MAX_LEN];
printf("欢迎来到《倒着说》游戏!\n");
while (1) { // 循环进行多轮游戏
int len = rand() % 4 + 1; // 随机生成出题字数(1~4)
printf("请在%d秒内倒着说下面这句话:\n", len * 5);
for (int i = 0; i < len; i++) {
int c = rand() % 26 + 'a'; // 随机生成小写字母
printf("%c", c);
}
printf("\n");
fgets(input, MAX_LEN, stdin); // 获取用户输入(包括换行符)
input[strlen(input) - 1] = '\0'; // 去掉换行符
reverse(input); // 反转字符串
if (strcmp(input, "") == 0) { // 如果用户没有输入则直接退出游戏
break;
}
printf("%s\n", input); // 输出用户倒着说的话
}
printf("游戏结束,谢谢参与!\n");
return 0;
}
该代码使用rand()
函数生成随机数来产生出题字数和小写字母,并使用fgets()
函数获取用户输入。在比较字符串时使用了strcmp()
函数。