c语言随机产生100个字母,C语言实现生成1到100随机数的方法

本文介绍了如何用C语言生成1到100的随机数,详细解析了关键代码`srand()`和`rand()`的用法,并提供了一个使用二分法的电脑猜数字小游戏示例,帮助读者深入理解随机数生成的原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C语言实现生成1到100随机数的方法

发布时间:2020-06-29 14:08:59

来源:亿速云

阅读:7054

作者:Leah

本篇文章为大家展示了C语言实现生成1到100随机数的方法,代码简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

生成10个1~100的随机数

废话不多说直接上程序。#include#include#include int main()

{int ret = 0;

srand((unsigned int)time(NULL));for(int i=0; i<10; i++)

{

ret = rand()%100;printf("%d ",ret);

}return 0;

}

2b05b201e9aeb836f8dce723c17e258d.png

这个程序是用来生成10个随机的数。接下来会详细说一说这个程序的构成。

随机数生成代码的分析

以上程序的关键代码是:srand = ((unsigned)time(NULL));

ret = rand()%100;

rand()函数所需头文件是#include

rand()是生成伪随机数的函数,它会按照一定的序列来生成随机数,但是它序列是固定的:

546ad2732d262a6df5d4a4bb119e7afc.png

程序每次执行它都将按照这个序列来给出随机数,所以在对rand()不加限制条件的话,生成的随机数不够随机。

time()函数所需要头的头文件是:#include

time()函数,值得注意的是time函数的形参,这个形参是个指针变量,通常写为time(NULL)。

这个函数的功能是,返回自1970年1月1日00:00:00到你先在电脑运行的时间(例:2018年3月24日14:14:00)之间的时间。这个数是随机的,随着你电脑运行时间而发生改变。

srand()函数所需要的头文件是:#include

srand()函数是伪随机数发生器种子,它给rand()函数一个产生一个起点。在单独使用rand()函数的时候,它将1作为默认参数。srand()的形参是一个无符号的类型,即unsigned类型,可以是int,float,char等等。

但在这里为了达到随机数效果,将使用time()函数来产生一个起点,它直接作用于rand()函数。

注意:ret = rand()%100;

rand()%100是为了产生100以内的随机数。

有趣的小程序

这是一个电脑自己猜数字的小程序。#include#include#include#include#includeint main()

{    int ret = 0;    int guess = 0;    int left = 0;    int right = 100;

srand((unsigned int)time(NULL));

ret = rand() % 100;    printf("提供的答案数是->%d\n",ret);

guess = 50;    while (1)

{        if (guess > ret)

{            printf("猜大了->%d\n", guess);

right = guess;

guess = (right + left) / 2;

Sleep(1000);

}        else if (guess 

{            printf("猜小了->%d\n", guess);

left = guess;

guess = (right + left) / 2;

Sleep(1000);

}        if (guess == ret)

{            printf("猜到了是%d", guess);            break;

}

}

system("pause ");    return 0;

}

10c9edbc09c490abb29b286c3edbcc76.png

这里使用了二分法的思想,让电脑自己去猜100以内的一个数。

使用了Sleep()函数用来延迟一下打印时间,Sleep()函数的参数的单位是ms,所以1000ms=1s。

更多相关资讯:

上述内容就是C语言实现生成1到100随机数的方法,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值