sadliu


私信TA

用户名:dotcpp0628815

访问量:312

签 名:

清醒 自律 知进退 明得失

等  级
排  名 4794
经  验 1553
参赛次数 0
文章发表 15
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

舞台再大,你不上台,永远是个观众;平台再好,你不参与,永远是个局外人。能力再大,你不行动,只能看着别人成功!

题目描述:

编写程序实现“剪刀,石头,布”游戏。在这个游戏中,两个人同时说“剪刀”,“石头”或“布”,压过另一方的为胜者。规则是:“布”胜过“石头”,“石头”胜过“剪刀”,“剪刀”胜过“布”。要求:选择结构中使用枚举类型,结果的输出也使用枚举类型表示。


输入格式:

两个数,范围为{0,1,2},用空格隔开。0表示石头,1表示布,2表示剪刀。这两个数分别表示两个人所说的物品。


输出格式:

如果前者赢,输出1。如果后者赢,输出-1。如果是平局,输出0。 


样例输入:

0 2


样例输出:

1


代码实现:

#include <stdio.h>

int main()
{
	enum game {stone, scissors, cloth} a, b;
	enum result{lose = -1, draw, win} num;
/*
1.枚举类型用enum开头,enum game和enum result是枚举类型
2.a和b是enum game的枚举变量,num是enum result的枚举变量
3.两个枚举类型中的花括号是各自类型的枚举元素(也称为枚举常量)
4.枚举变量与其他类型的变量数值型不同,他们的值只能在花括号的值之间
5.不能在花括号外对枚举元素进行赋值,他们被当作常量
6.花括号的枚举常量自动从0开始赋值,stone=0,scissors=1,cloth=1
	lose=-1,draw=0,win=1
7.枚举常量可以输出,用%d打印 
*/
	scanf("%d%d", &a, &b);
	if(b-a == 1 || b-a == -2)
	{
		num = lose;//将变量num赋值成元素的值,即num=-1 
	}
	else if(a-b == 1 || a-b == -2)
	{
		num = win;
	}
	else
	{
		num = draw;
	}
	switch(num)
	{
		case lose:
			printf("%d", lose);
			break;
		case win:
			printf("%d", win);
			break;
		case draw:
			printf("%d", draw);
			break;
	}
	return 0;
}


 

0.0分

0 人评分

  评论区