因此,我将此程序编写为两人的石头剪刀布游戏,无论每个玩家选择什么,输出都是“玩家 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'))
对所有类似事件执行此操作。
同时删除未使用的变量,r
、p
和 s
。
最后,打开编译器警告并注意它们 - 如果您允许的话,编译器会帮助您解决所有这些问题。
关于c - 无论输入如何,输出相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19169617/