C语言:计算机猜数字

计算机猜数字

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
	srand(time(0));
	int number = rand()%100+1;
	int count = 0;
	int a=0;
	printf("我已经想好了一个1到100之间的数。\n");
	do {
		printf("请猜这个1到100之间的数:");
		scanf("%d",&a);
		count++;
		if(a>number){
			printf("你猜的数大了");
		}
		 else if(a<number){
			printf("你猜的数小了");
		}
	} while(a!=number);
	printf("太好了,你用了%d次就猜到了答案\n",count);
}
`
## 程序说明
这里的srand函数和time函数如下:
srand函数
    srand函数是随机数发生器的初始化函数,原型:
void srand(unsigned int seed);

    这个函数需要提供一个种子,如srand(1),用1来初始化种子
    rand()产生随机数时,如果用srand(seed)播下种子之后,一旦种子相同(下面的getpid方法),产生的随机数将是相同的。当然很多时候刻意让rand()产生的随机数随机化,用时间作种子 srand(time(NULL)),这样每次运行程序的时间肯定是不相同的,产生的随机数肯定就不一样了。

    我们常常使用系统时间来初始化,使用time函数来获取系统时间,得到的值是一个时间戳,即从1970110点到现在时间的秒数,然后将得到的time_t类型数据转化为(unsigned int)的数,然后再传给srand函数,用法如下:
        srand((unsigned int)time(NULL));//我们在使用rand和srand时,主要使用的就是这一种初始化方法!!
        如果仍然觉得时间间隔太小,可以在(unsigned)time(0)或者(unsigned)time(NULL)后面乘上某个合适的整数。 例如,srand((unsigned)time(NULL)*10)
        time的参数传NULL表示不需要经过参数获得到的time_t数据,time函数原型如下

time_t time(time_t *tloc);//time_t类型被定义为一个长整型

    还有另外一种初始化种子的方式如下,用进程的pid作为种子值seed,在同一个程序中,这样的种子的值是相同的
        srand((unsigned int)getpid())
————————————————
版权声明:本文为CSDN博主「TLpigff」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lvyibin890/article/details/80141412

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值