C语言综合运用---猜数字游戏

程序会生成1-100的随机数
猜数字
1 猜小了,程序说明你猜小。继续。
2 猜大了,程序说明你猜大了。继续。
3 猜对了,程序说明。恭喜。

规定菜单样式

*******************
*     1.play      *
*     0.exit      *
******************* 
void menu()//表示没有返回值
{
	printf("********************\n");
	printf("*      1.play      *\n");
	printf("*      2.exit      *\n");
	printf("********************\n");
}
int main()
{
	int input = 0;
	do
	{
		menu();
		printf("请选择:>");//后换掉
		//game():
		scanf("%d", &input);
		switch (input)
		{
	     case 1:
			 printf("猜数字\n");
			break;
		case 0:
			printf("退出游戏\n");
			break;
		deflault:
			printf("选择错误,重新选择\n");
			break;

		}
	} while (input);

为了生成任意随机数,我们用rand函数。需要引用头文件
#include

rand函数返回的是0~~RAND_MAX之间的随机数。
#include
void game()
{
	int ret = rand();
	printf("%d\n", ret);
}

完成后开始生成C语言综合运用---猜数字游戏_第1张图片
当我们循环一次后再次重新开始会发现第二次输出和第一次输出结果一样。说明游戏存在BUG,需要再次修改。
需要使用srand在rand前,来设置随机数的生成器。

#include
void game()
{
	srand(0);
	int ret = rand();
	printf("%d\n", ret);
}
但使用srand时括号内需要一个随机值以便输出,为解决此情况,
我们可以以时间来代替随机数。

时间戳

#include
#include
void game()
{
	srand((unsigned)time(NULL));
	int ret = rand();
	printf("%d\n", ret);
}

但运行数字相差较小,不符合随机数。

srand函数在程序中只用调用一次就可以。

所以将srand((unsigned)time(NULL));放到main函数里。
这样生成随机数完成,但数值不可控需要限定范围。

int ret = rand()%1000+1;

所以game中的函数可改为,

#include
void game()
{
	srand(0);
	int ret = rand()%100+1;
	while(1)
	{
	  printf("请猜数字:>");
	  scanf("%d",&num):
	  if(num<ret)
	  {
	     printf("猜小了");
	  }
	  else if
	  {
	     printf("猜大了"):
	  }      
	  else
	  {
	      printf("恭喜成功");
	      break;
	  }  
	}   
}

就此代码结束,想要试一试吗。
源码

#define _CRT_SECURE_NO_WARNINGS 1
#include
#include
#include
void menu()
{
	printf("********************\n");
	printf("*      1.play      *\n");
	printf("*      2.exit      *\n");
	printf("********************\n");
}

void game()
{
	int num = 0;
	int ret = rand() % 100 + 1;
	//printf("%d\n", ret);
	while (1)
	{
		printf("请猜数字:>");
		scanf("%d", &num);
			if (num < ret)
			{
				printf("猜小了");
			}
			else if(num>ret)
			{
				printf("猜大了");
			}
			else
			{
				printf("恭喜成功");
				break;
			}
	}
}
int main()
{
	int input = 0;
	srand((unsigned int)time(NULL));
	
	
	do
	{
		menu();
		printf("请选择:>");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			game();
			break;
		case 0:
			printf("退出游戏\n");
			break;
		deflault:
			printf("选择错误,重新选择\n");
			break;

		}
	} while (input);
	return 0;
}

你可能感兴趣的:(c语言,游戏,c++)