用c语言基础知识写代码,划拳的规则如下: A、B二人在一起划拳行酒令。A、B出拳0-5,喊拳可以喊0-10,喊拳的数字必须大于等于出拳的数字,否则就是失拳(即)。若A、B出拳数字之和等于其中某人(比如A)喊拳的数字,则喊拳的人(即A)就获胜。若不等于任何一个喊拳的数字,继续出拳。三局两胜。 比如:A 出拳 3,喊拳5,B出拳2,喊拳是8,则A胜一局。 A出拳5,喊拳5,B出拳5,喊拳7,则都不赢,继续出拳。
时间: 2023-06-11 14:08:35 浏览: 152
以下是用 C 语言写的代码,实现划拳的规则:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int a_score = 0, b_score = 0; // A 和 B 的胜利局数
int round = 0; // 当前比赛的回合数(最多 3*2=6)
srand(time(NULL)); // 初始化随机数生成器
while (a_score < 2 && b_score < 2 && round < 6) {
int a_fist = rand() % 6; // A 随机出拳(0-5)
int b_fist = rand() % 6; // B 随机出拳(0-5)
int a_shout, b_shout; // A 和 B 喊的数字
printf("第 %d 回合:\n", round + 1);
printf("A 出拳(0-5): %d\n", a_fist);
printf("A 喊拳(0-10):");
scanf("%d", &a_shout);
if (a_shout < a_fist) {
printf("A 失拳!\n");
} else {
printf("B 出拳(0-5): %d\n", b_fist);
printf("B 喊拳(0-10):");
scanf("%d", &b_shout);
if (b_shout < b_fist) {
printf("B 失拳!\n");
} else if (a_fist + b_fist == a_shout) {
printf("A 胜!\n");
a_score++;
} else if (a_fist + b_fist == b_shout) {
printf("B 胜!\n");
b_score++;
} else {
printf("继续出拳!\n");
}
}
printf("当前比分:A %d-%d B\n\n", a_score, b_score);
round++;
}
if (a_score > b_score) {
printf("A 胜利!\n");
} else {
printf("B 胜利!\n");
}
return 0;
}
```
该程序使用随机数生成器模拟 A 和 B 的出拳,同时通过标准输入让用户输入 A 喊的数字。根据划拳的规则,如果 A 喊的数字小于 A 出的拳,则 A 失拳,否则继续比较 B 的出拳和喊的数字。如果 B 喊的数字小于 B 出的拳,则 B 失拳,否则判断两人出拳之和是否等于 A 或 B 喊的数字,如果是则对应的人获胜,否则继续出拳。最后根据胜利局数判断获胜者。
阅读全文