C/C++ 随机数(rand/srand)

C/C++随机数

  • rand() 随机
  • srand() 随机 (设置一个种子)
  • srand() 指定范围随机
  • 随机0.00 ~ 1.00之间的double
  • srand() 随机0-9之间的数
  • 随机整数范围内的小数

rand() 随机

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

int main() {
	// 随机数 rand(每次启动都是一样的数)
	for (int i = 0; i < 10; i++)
	{
		printf("%d \n", rand());
	}
	return 0;
}

srand() 随机 (设置一个种子)

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

int main() {
	// srand 随机数,设置一个种子seed, 
	// 发现每次重启还是一样的值, 只有种子不一样,随机数才不一样
	srand(11);
	for (int i = 0; i < 10; i++)
	{
		printf("%d \n", rand());
	}
	
	// 获取种子每次不一样的值
	int seed = time(NULL);
	// 通常传入当前的时间(保证不重复)
	srand(seed);
	for (int i = 0; i < 10; i++)
	{
		printf("%d \n", rand());
	}
	return 0;
}

srand() 指定范围随机

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

int main() {
	// rand 取范围之间的数: 取模:如取200-290之间的值, 90是区间长度
	srand(time(NULL));
	for (int i = 0; i < 10; i++)
	{
		printf("%d \n", rand() % 90 + 200);
	}
	return 0;
}

随机0.00 ~ 1.00之间的double

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

int main() {
	srand(time(NULL));
	// 要0.00 - 1.00 之间的小数
	int r = rand() % 100;
	double rp = r / 100.0;
	printf("%.2f \n", rp);
	// 或者
	double rp2 = (double)rand() / RAND_MAX;
	printf("%.2f \n", rp2);
	return 0;
}

srand() 随机0-9之间的数

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

int main() {
	srand(time(NULL));
	// 随机0-9之间
	int r = rand() % 10;
	printf("%d \n", r);
	return 0;
}

随机整数范围内的小数

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

int main() {
	srand(time(NULL));
	// 随机100- 160之间的小数
	int r = rand() % 60 + 100; // 获取一个整数
	double rp = r + (double)rand() / RAND_MAX; // 整数 + 随机一个小数
	printf("%.2f \n", rp);
	return 0;
}
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cocosum

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值