当前位置:   article > 正文

C语言随机数函数学习和随机数排序_c语言生成随机数并排序

c语言生成随机数并排序

有一次用random函数生成随机数,发现每次生成的随机数都一样,于是决定学习为什么会一样。
1.rand()函数
(1)头文件为:#include<stdlib.h>
(2)随机数范围:
假如你想要产生一个10-100之间的随机数那么
int a=rand%91+1
(2)产生随机数时,在调用前都会查询是否调用了srand给种子设置了初值,如果没有调用,那么系统会自动给种子赋初值,并且后面种子值保持不变。
也就是说,如果没有srand函数,而直接调用rand函数,那么每次产生的随机数值相同。
例如下面这中情况:

#include<stdio.h>
#include<stdlib.h>
int main(){
	int a;
	a=rand();
	printf("%d",a);
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

2.srand函数
多数情况下,我们希望产生的随机数是不同的,所以需要srand函数来初始化种子,让种子值每次不同,这样一来rand产生的随机数也将不同。
srand((unsigned)time(NULL));是用时间的不同来作为种子产生的依据,时间每时每刻不同,于是种子也会不同,因此随机数不同。
3.随机数排序(使用冒泡排序)

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define MAX 20
void maopao(int array[],int len){//从小到大 
	int i;
	int r;//表示第几趟
	int temp;
	for(r=0;r<len;r++){
		for(i=0;i<len-1;i++){
			if(array[i]>array[i+1]){
				temp=array[i];
				array[i]=array[i+1];
				array[i+1]=temp;
			}
		}
	} 
	printf("\n排序后为:\n"); 
	for(i=0;i<len;i++)
		printf("%d,",array[i]);
}
int main(){
	srand((unsigned)time(NULL));
	int i,n;
	int a[MAX];
	printf("请输入你需要几个数据(不要超过20个):\n");
	scanf("%d",&n);
	for(i=0;i<n;i++){
		a[i]=rand()%101+1;//1-100之间的数 
	}
	printf("这%d个数分别为:",n);
	for(i=0;i<n;i++)
		printf("%d,",a[i]);
	maopao(a,n);
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

a

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/608115
推荐阅读
相关标签
  

闽ICP备14008679号