c语言“正话反说”:A和B在玩一个游戏,两人轮流说一句话,这句话正读反读都一样,如adgda,谁先说错,谁出局,另一个人胜出。 编写一个函数用于判断这句话是否符合要求,符合要求时,函数返回1,否则函数返回0,主函数中对两个人轮流判断,直至有人胜出为止。(10分) 。
时间: 2024-06-13 11:08:26 浏览: 9
以下是C语言实现“正话反说”游戏的代码和解释:
```c
#include <stdio.h>
#include <string.h>
// 判断字符串是否为回文字符串
int isPalindrome(char str[]) {
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
if (str[i] != str[len - i - 1]) {
return 0;
}
}
return 1;
}
int main() {
char str[100];
int flag = 1; // 标记是否继续游戏,1表示继续,0表示结束
int player = 1; // 标记当前玩家,1表示A,2表示B
while (flag) {
printf("请玩家%d输入一句话:", player);
gets(str); // 输入一句话
if (isPalindrome(str)) { // 判断是否为回文字符串
printf("恭喜玩家%d,这句话是回文字符串!\n", player);
} else { // 不是回文字符串,当前玩家出局
printf("玩家%d输了!\n", player);
flag = 0; // 结束游戏
}
player = player == 1 ? 2 : 1; // 切换玩家
}
return 0;
}
```