欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

猜数字游戏:C语言作业指南

最编程 2024-08-14 17:59:33
...
//猜数字游戏
#include <time.h>
#include  <stdlib.h>

//void表示“无类型”,相应的void*为无类型指针,即1.对函数返回的限定;2.对函数参数的限定
//当函数不需要返回值时,必须用void限定   例如:void func(int a,char *b)
//当函数不允许接受参数时,必须使用void限定  例如:int func(void)
void menu()//先设置一个简易菜单
{

	printf("*****************************\n");
	printf("***  1.play     0.exit   ****\n");
	printf("*****************************\n");
}

//random的范围为0-32767
//rand_max为32767
void game()//设置游戏内容
{   
	int ret = 0;
	int guess = 0;
	//1.生成随机数
	ret = rand() % 100 + 1;//生成1-100的随机数;取模的范围为1-99,该代码+1是为了将范围扩大到100;使用rand函数得加上头文件<stdlib.h>
	//2.猜数字
	while (1)
	{
		printf("请输入数字:>");
		scanf("%d", &guess);
		if (guess > ret)
		{
			printf("猜大了\n");
		}
		else if (guess < ret)
		{
			printf("猜小了\n");
		}
		else
		{
			printf("恭喜你,猜对了!!!\n");
			break;//跳出do while循环语句
		}
	}
}

int main()
{
	srand((unsigned int)time(NULL));//unsigned int time是将time的类型进行修改为int(原为long);time(NULL)表示空指针;该代码是拿时间戳来设置随机数的生成起始点,且需要引用头文件<time.h> 
	//unsigned int为无符号整形,该类型只能表示大于等于0的值;signed int为带符号整形,该类型可以表示正数,负数或0
	//在该游戏中,我们需要的是1-100的正整数,所以要表明unsigned
	int input = 0;//设置一个输入的变量
	do//do while循环是先执行循环体,再判断条件是否成立;而while语句是先判断条件是否成立,再执行循环体
	{
		menu();//引用菜单
		printf("请选择:>");
		scanf("%d", &input);//输入数字
		switch (input)//switch分支语句
		{
		case 1://输入的数若为1,执行case 1,这里input为1,即判断do while循环语句为真,执行完游戏后再跳回do while循环语句
			game();//执行游戏
			break;//跳出switch语句
		case 0://若输入的数为0,则执行case 2,input为0,则在do while循环语句中为假,即跳出do while循环,结束代码
			printf("退出游戏\n");
			break;
		default://若输入两者之外的数,则执行default的情况
			printf("选择错误\n");//这里input为非0,即do while循环语句判断为真,跳出switch语句后再进入do while循环语句
			break;
		}
		
	} while (input);
	return 0;
}

我注释的很清楚了吧。