c语言中的随机数

c语言产生一定范围的随机数 运行环境 vs2019 community


今天在一个小程序中看到了一个随机函数,心血来潮,来记录一下,顺便回忆一下c#(有点懒,c#部分后期再补)

c语言中产生随机数

#include <stdio.h>
#include <stdlib.h>//这里要注意,必须写,不然vs报错,因为rand函数在stdlib下面
#include <time.h>//这里要注意,因为随机数是根据系统日期所产生的.
int main()
{
	srand(time(0));//根据当前系统日期产生随机数
	//srand((unsigned) time(NULL));也可以这样写
	int num=rand()%201-100;
	//产生一个-100到100之间的数
	printf("你产生的随机数是%d\n",num);
}

运行结果
第一次
第一次运行结果
第二次
第二次运行结果

rand()

rand函数指定数字范围原理
要让随机数限定在一个范围,可以采用模除加加法的方式。
要产生随机数r, 其范围为 m<=r<=n,可以使用如下公式:
rand()%(n-m+1)+m
其原理为,对于任意数,
0<=rand()%(n-m+1)<=n-m
同时加上m
0+m<=rand()%(n-m+1)+m<=n-m+m
得到
m<=rand()%(n-m+1)+m<=n

rand的例子

#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main()
{
	//产生一个-200到200之间的数
	srand((unsigned)time(NULL));
	//rand()%(200-(-200)+1)+(-200)
	//rand()%401-200
	int num=rand()%401-200;
	printf("随机数的结果为%d\n",num);
	return 0;
}
```c
在这里插入代码片

## 不足点

 1. 没有说清楚srand和time的细节部分
 2. rand细节部分
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值