使用C语言的switch语句实现当三人中任意一人抢答后其他人抢答无效
时间: 2024-04-17 13:26:23 浏览: 13
使用C语言的switch语句实现当三人中任意一人抢答后其他人抢答无效的示例代码如下:
```c
#include <stdio.h>
int main() {
int player = 0; // 当前回答的玩家编号
int answer = 0; // 回答的结果
int isAnswered = 0; // 是否已经有玩家回答
while (1) {
if (!isAnswered) {
switch (player) {
case 0:
printf("玩家1回答:");
scanf("%d", &answer);
if (answer == 10) {
printf("回答正确!玩家1获胜!\n");
return 0;
}
player = 1; // 下一个玩家回答
isAnswered = 1; // 标记有玩家回答
break;
case 1:
printf("玩家2回答:");
scanf("%d", &answer);
if (answer == 10) {
printf("回答正确!玩家2获胜!\n");
return 0;
}
player = 2; // 下一个玩家回答
isAnswered = 1; // 标记有玩家回答
break;
case 2:
printf("玩家3回答:");
scanf("%d", &answer);
if (answer == 10) {
printf("回答正确!玩家3获胜!\n");
return 0;
}
player = 0; // 下一个玩家回答
isAnswered = 1; // 标记有玩家回答
break;
}
} else {
printf("已有玩家回答,其他人抢答无效!\n");
isAnswered = 0; // 重置为没有玩家回答的状态
}
}
return 0;
}
```
以上代码使用一个isAnswered标志来表示是否已经有玩家回答。当isAnswered为0时,允许玩家回答,并将isAnswered标志设置为1表示有玩家回答过。当isAnswered为1时,输出提示信息表示已有玩家回答,其他人抢答无效,并将isAnswered标志重置为0,以便下一轮的回答。这样可以确保每次只有一个玩家能够有效回答。