石头剪刀布三局两胜代码修改

#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);
}