题目描述
编写程序实现“剪刀,石头,布”游戏。在这个游戏中,两个人同时说“剪刀”,“石头”或“布”,压过另一方的为胜者。规则是:“布”胜过“石头”,“石头”胜过“剪刀”,“剪刀”胜过“布”。要求:选择结构中使用枚举类型,结果的输出也使用枚举类型表示。
输入格式
两个数,范围为{0,1,2},用空格隔开。0表示石头,1表示布,2表示剪刀。这两个数分别表示两个人所说的物品。
输出格式
如果前者赢,输出1。如果后者赢,输出-1。如果是平局,输出0。
样例输入
0 2
样例输出
1
代码流程及分析
1. 引入头文件
代码首先引入了stdio.h
头文件,这是C语言标准输入输出库,用于处理输入输出函数,如scanf
和printf
。
2. 主函数定义
main
函数是程序的入口点,它没有接收任何参数,也没有返回值。
3. 定义变量
在main
函数内部,定义了两个整数变量:
int player1;
:用于存储第一个玩家的得分或状态。int player2;
:用于存储第二个玩家的得分或状态。
4. 读取输入
使用scanf
函数按照格式"%d%d"
读取用户输入的两个整数,分别赋值给player1
和player2
。
5. 条件判断
程序使用if
和else if
语句来根据player1
和player2
的得分差异进行判断:
if (player1 - player2 == 1 || player1 - player2 == -2)
:如果player1
的得分比player2
高1或player2
的得分比player1
高2,则打印"1"。else if (player1 - player2 == 0)
:如果两个玩家得分相同,则打印"0"。else if (player1 - player2 != 1)
:如果player1
的得分不比player2
高1,打印"-1"。
6. 输出结果
根据上述条件判断的结果,程序使用printf
函数输出相应的字符("1"、"0"或"-1")。
7. 程序结束
main
函数返回0,表示程序正常结束。
源代码
#include <stdio.h>
int main(void)
{
int player1, player2;
scanf("%d%d", &player1, &player2);
if (player1 - player2 == 1 || player1 - player2 == -2)
printf("1");
else if (player1 - player2 == 0)
printf("0");
else if (player1 - player2 != 1)
printf("-1");
return 0;
}