题目描述:

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


输入格式:

两个数,范围为{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分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论