当前位置:主页 > 查看内容

好玩又实用的程序——用C语言设计一个随机“捉鳖”程序

发布时间:2021-07-28 00:00| 位朋友查看

简介:捉鳖程序的实现 1、随机数的生成 2、反复捉鳖与程序设计 3、细节优化 1、随机数的生成 前几天啊班里要选人去学那什么健美操采用捉鳖的方式我突发奇想能不能用c语言设计个随机抽号程序程序的精髓在如何“随机”。 查阅后rand函数可以生成随机数于是先跑起来让……

1、随机数的生成

前几天啊,班里要选人去学那什么健美操,采用捉鳖的方式,我突发奇想能不能用c语言设计个随机抽号程序,程序的精髓在如何“随机”。

查阅后,rand函数可以生成随机数,于是先跑起来让它生成十个随机数并输出
在这里插入图片描述

而后让它跑第二次

在这里插入图片描述

发现和第一次生成的随机数无差别。这不符合我们的需要!
于是我认真地查阅了这个函数,发现它在使用前还需要一个srand函数来设置随机数。

The srand function sets the starting point for generating a series of pseudorandom integers. To reinitialize the generator, use 1 as the seed argument. Any other value for seed sets the generator to a random starting point. rand retrieves the pseudorandom numbers that are generated. Calling rand before any call to srand generates the same sequence as calling srand with seed passed as 1.

看到英文就迷瞪…大概就是为srand函数需要一个随机源来为rand函数设置随机数,那随机源哪来的呢??时间时时刻刻在变,来调用电脑上的时间不就迎刃而解了嘛。

srand((unsigned) time(NULL));

第一次使用
在这里插入图片描述
第二次使用在这里插入图片描述

到这里就解决了随机的问题!

2、反复捉鳖与程序设计

一个程序,应有自己的界面,玩法,所以我们来将其优化一下。
先创建一个菜单函数。

void menu()
{
	printf("1.抽取————————0.放弃\n");
}

进入程序,选择进行抽取还是放弃。
而这个程序有可能被重复使用,所以还得有个循环,并且是那种先进入循环后判断条件的do while语句可以帮我们实现。

       do
	{
		menu();
		scanf("%d", &input);
    }while(input);

下一步,我们要根据使用者的选择去进行下一步。
if分支可以实现,但是用switch进行多分支循环比if方便许多。

do
	{
		menu();
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			break;
		case 0:
			break;
		}
	} while (input);

当使用者选择1后,程序要开始抽号输出,我需要的是1-27号,所以用取模来实现

do
	{
		menu();
		scanf("%d", &input);
		Sleep(1000);
		switch (input)
    	{
		case 1:
			printf("抽到的学号是:%d\n", rand() % 27 + 1);
			break;
		case 0:
			break;
		}
	} while (input);

至此,游戏

3、细节优化

在使用中发现,当使用者选择1后,发现程序运行的太快,所以需要程序运行慢一点,也给在等待的同学中一点紧张感。
Sleep函数(程序休眠函数)

int input = 0;
	do
	{
		menu();
		scanf("%d", &input);
		switch (input)
		{
		case 1:
		    Sleep(1000);
			printf("抽到的学号是:%d\n", rand() % 27 + 1);
			break;
		case 0:
			break;
		}
	} while (input);

至此,一个完整的程序就出炉了!以后会经常写一点实用的,希望大家多多关注!

;原文链接:https://blog.csdn.net/m0_52751535/article/details/115803004
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:蓝桥备战准备记录 1 下一篇:没有了

推荐图文


随机推荐