规则:先规定出题的字数,比如这一轮出题必须在四个字以内,也就是说出题的人可以任说一句话。“我是好人”那么答题人必须在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()函数。