随机生成函数rand与srand函数

一、rand函数

在需要用到随机生成函数时,我们第一想到的也是rand函数

那么这个函数的基本用法是什么呢?

首先,使用rand函数需要用到头文件#include<stdlib.h>

接下来讲一下基础用法

举个栗子,比如说我们在1~100想要随机生成十个数并且将他们排序后输出,那么该怎么办呢?

int t, data[10];
	for (int i = 0; i < 10; i++)
		data[i] = rand() % 100+1; 

rand()%后面所接的数字减一就是随机生成的最大数字,就像这里,rand()%100表示的是在0~99中随机生成一个数字,所以我们在其后加上1生成范围就是1~100了

不过呢,如果有细心的小伙伴会发现,为啥每次生成的好像都是同一个数,不是说随机吗?that's why? 其实,rand函数说是随机但并不是真正意义上的随机

那么接下来我们的主角就要出场了

二、srand函数

与rand函数一样,使用时需要也需要头文件#include<stdlib.h>

那么我们现在解释一下为什么rand函数生成的数字不变

其实,在每次用到rand函数时都会有一个随机数种子,而rand函数的随机数种子一旦生成,他自己是无法再改变的,那么有人就不服了,嘿,我还就要改变,好,那么rand的大哥大srand就出现了,换句话说,srand的意义就在于改变rand的随机数种子,使他每次生成的数字不同,那么接下来,真正意义的随机生成他就要来啦

#include<iostream>
#include<stdlib.h>
#include<ctime>
using namespace std;
int main() {
	int t, data[10];
	srand(time(0));
	for (int i = 0; i < 10; i++){
		data[i] = rand() % 100+1; //随机生成1~100之间的数
	}
		
	for (int i = 0; i < 9; i++) {
		for (int j = 0; j < 9 - i; j++) {
			if (data[j] < data[j + 1]) {
				t = data[j + 1];
				data[j + 1] = data[j];
				data[j] = t;
			}
		}
	}
	for (int i = 0; i < 10; i++)
		cout << data[i] << endl;
	system("pause");
	return 0;
}

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值