c - 无论输入如何,输出相同

标签 c

因此,我将此程序编写为两人的石头剪刀布游戏,无论每个玩家选择什么,输出都是“玩家 1 获胜”。

#include <stdio.h>
int main(void)
{
long player1Choice, player2Choice, p, r, s;


        printf("Player 1, enter paper (p), rock (r), or scissors (s)\n");
            player1Choice=getchar();
            getchar();

        printf("Player 2, enter paper (p), rock (r), or scissors (s)\n");
            player2Choice=getchar();
            getchar();

        if((player1Choice=p)&&(player2Choice=r))    
            printf("Player 1 wins!\n");
        else if((player1Choice=r)&&(player2Choice=p))
            printf("Player 2 wins!\n");
        else if((player1Choice=r)&&(player2Choice=s))
            printf("Player 1 wins!\n");
        else if((player1Choice=s)&&(player2Choice=r))
            printf("Player 2 wins!\n");
        else if((player1Choice=s)&&(player2Choice=p))
            printf("PLayer 1 wins!\n");
        else if((player1Choice=p)&&(player2Choice=s))
            printf("Player 2 wins!\n");


    printf("Press any key to exit");
    getchar();
    return 0;
}

我认为我的“if”语句中的逻辑“and”可能会导致问题,但我不确定。

最佳答案

您在字符常量周围缺少单引号,并且在需要 == 时还使用了 =。所以改变例如

    if((player1Choice=p)&&(player2Choice=r))    

到:

    if((player1Choice=='p')&&(player2Choice=='r'))    

对所有类似事件执行此操作。

同时删除未使用的变量,rps

最后,打开编译器警告并注意它们 - 如果您允许的话,编译器会帮助您解决所有这些问题。

关于c - 无论输入如何,输出相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19169617/

相关文章:

c - C什么时候创建变量?

c - 对 libusb_hotplug_register_callback 的 undefined reference

使用C计算给定范围内的long int的素数数量

c - 如何给指针赋值

C正则表达式性能

c - 在同一个 C 程序中同时使用 putchar 和 printf ?

在Linux中从一张图像更新创建电影

c - C 中存在高迭代循环的程序不会给我输出..为什么?

c - ucontext.h 中的 REG_* 是什么

c - 我如何用我的内核创建可引导 CD 镜像?