C语言分支和循环语句整合(设计猜数字游戏)

1、条件判断语句(也叫分支语句) :if语句、switch语句。

2、循环执行语句:do while语句、while语句、for语句。

3、转向语句:break语句、goto语句、continue语句、return语句。

注意点以及额外需要调用的函数:

1、如果要多条语句,要加上花括号,默认只能控制一条语句。

2、switch语句的表达式必须是整型表达式,case后面应该跟整型常量,不能为变量,可以是字符(因为字符是以ASCII码形式的,ASCII值是整数属于整型)

3、void xxx ()用于封装。

4、rand函数:头文件为#include<stdlib.h>

原型:int rand ();

rand函数会返回一个伪随机数,范围在0-RAND-MAX(32767)间。

rand函数是对一个叫“种子”的基准值进行运算生成的随机数,是伪随机的。

如果要生成不同随机数就让种子变化。

5、srand函数:

初始化随机数的生成器

原型:void srand (unsigned int seed);

注意:不要封装,要放在主函数里

程序调用rand函数前,先调用srand函数。

6、time 函数

头文件为#include<time.h>

一般以时间为种子。该函数可获得时间

原型: time_t time (time_t * timer);

time 函数会返回日历时间。为time_t类型(是32位或64位整型)

①参数timer如果是非NULL指针,函数会将这个返回差值放在timer指向的内存中带回去。

②timer是NULL,只返回时间差值(时间戳)

7、while循环中的break是用于永久地中止循环的

8、continue是跳过本次循环后面的代码,直接去判断部分,进行下一次循环的判断。

9、goto语句:可往前可往后。

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void leave()
{
	printf("*******************\n");
	printf("****1、残忍离开****\n");
	printf("****2、无奈留下****\n");
	printf("*******************\n");
}
void game()
{
	int r = rand() % 100 + 1;
	int guess = 0;
	int count = 5;
	while (count)
	{
      printf("\n你还有%d次机会\n", count);
		printf("请您猜一个数字:");
		scanf("%d", &guess);
		if (guess < r)
		{
			printf("您猜小了\n");
		}
		else if (guess > r) 
		{
			printf("您猜大了\n");
		}
		else
		{
			printf("恭喜您,猜中啦!\n");
			break;
		}
		count--;
		if (count == 0)
		{
			printf("你输了\n");
			printf("正确答案是: %d\n", r);
		}
	}
}
void menu()
{
	printf("*************************\n");
	printf("*******1、开始游戏*******\n");
	printf("*******0、退出游戏*******\n");
	printf("*******2、游戏开发者*****\n");
	printf("*************************\n");
	
}
int main()
{
	int input = 0;
	int reput = 0;
	srand((unsigned int)time(NULL));
	flag:
	do 
	{
		menu();
		printf("你的选择是: ");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
		{
			game();
			break;
		}
		case 2:

		{
			printf("感谢创作者GxySkywalker贡献此游戏。\n");
			break;
		}
		case 0:
		{
			b:
			printf("确认退出游戏吗?\n");
				leave();
				scanf("%d", &reput);
				{
					switch (reput)
					{
					case 1:
					{
						printf("游戏结束\n");
						goto c;
						
					}
					case 2:
					{
						goto flag;
						break;
					}
					default:
						printf("输入错误,请重新输入\n");
						goto b;
					}
				}
		}
		default:
		{
			printf("输入错误,请重新输入\n");
			break;
		}
			}
    }while (input);
	c:
	
	return 0;
}

1、简易游戏菜单:

2、输入不存在的数字时:

3、输入0(游戏开发者):

4、输入1(开始游戏)时:

5、开始猜数字:

6、输入0(退出游戏)时:

7、选择2(无奈留下):

8、选择1(残忍离开):

心动不如行动,大家也来试试制作简易游戏吧

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值