#include <stdio.h>
int main()
{
int a, b;
scanf("%d%d", &a, &b);
int result=(a==1&&b==2) || (a == 2 && b == 3) || (a== 3&&b==1)?1:2;
if (a == b) printf("平局");
else printf("player %d win.", result);
}
三局两胜怎么改
#include <stdio.h>
int main() {
int player1_win = 0, player2_win = 0;
int player1, player2;
while (player1_win < 2 && player2_win < 2) {
printf("请输入玩家1出的手势(1-石头,2-剪子,3-布):");
scanf("%d", &player1);
printf("请输入玩家2出的手势(1-石头,2-剪子,3-布):");
scanf("%d", &player2);
if (player1 == player2) {
printf("平局\n");
} else if ((player1 == 1 && player2 == 2) || (player1 == 2 && player2 == 3) || (player1 == 3 && player2 == 1)) {
printf("玩家1获胜\n");
player1_win++;
} else {
printf("玩家2获胜\n");
player2_win++;
}
}
if (player1_win > player2_win) {
printf("玩家1获得最终胜利");
} else {
printf("玩家2获得最终胜利");
}
return 0;
}
一局一胜代码修改为:
定义了两个变量player1和player2,分别表示两个玩家出的手势,然后使用scanf函数读入输入的手势。接着使用if语句判断两个玩家出的手势,并根据规则输出结果。
三局两胜修改:
添加了一个while循环,用于判断是否有一方取得了两局胜利。每次循环中,程序会读入两个玩家出的手势,并根据规则判断胜负,胜利者的胜利次数加一。
当某一方胜利次数达到2时,循环停止,根据胜利次数判断最终胜者,并输出结果。
用一个for循坏来实现就可以用了:
#include <stdio.h>
int main()
{
int player1 = 0, player2 = 0; // 记录每个选手的胜局数
int a, b;
for (int i = 1; i <= 3; i++) // 进行三局比赛
{
printf("第%d局,请输入选手1和选手2的出拳:\n", i);
scanf("%d%d", &a, &b);
if (a == b)
{
printf("第%d局:平局\n", i);
i--; // 平局不算胜负,需要重新进行本局比赛
}
else if ((a == 1 && b == 2) || (a == 2 && b == 3) || (a == 3 && b == 1))
{
printf("第%d局:选手1胜利\n", i);
player1++;
}
else
{
printf("第%d局:选手2胜利\n", i);
player2++;
}
if (player1 == 2 || player2 == 2) // 判断是否已经有选手获得两局胜利
break;
}
if (player1 == player2)
printf("三局两胜最终结果:平局\n");
else if (player1 > player2)
printf("三局两胜最终结果:选手1胜利\n");
else
printf("三局两胜最终结果:选手2胜利\n");
return 0;
}
#include <stdio.h>
int main()
{
int a, b;
int p1 = 0; p2 = 0;
while (p1 < 3 && p2 < 3) {
scanf("%d%d", &a, &b);
int result=(a==1&&b==2) || (a == 2 && b == 3) || (a== 3&&b==1)?1:2;
if (a == b) printf("平局");
else printf("本局 player %d 获胜\n", result);
if (result == 1) p1+;
if (result == 2 && a != b) p2++;
}
printf("最终player %d 获胜", p1 > p2 ? 1 : 2);
}