C語言中的rand()函數和它的實例操作

C語言中的rand()函數,我是不怎麼用,不過正好碰上了,我就仔細研究了一下 

 一:首先,rand()函數在stdlib.h這個頭文件中

二:系統在調用rand()函數之前會自動調用srand()函數,而如果在函數體中未自定義srand()裏面的值的話,默認初始值爲1,如果自定義srand(),則括號裏面不能爲空,必須添加一個argument

三:爲了確保試生成的隨機數儘可能的符合概率上的隨機,引入一個time函數,意爲UNIX時間戳,即1970年1月1日0點0分0秒返回的時間(每次利用for循環返回的時間都不一樣),而time()括號內必須爲0或NULL

下面爲實例,即隨機生成20個0-100之間的隨機數,賦值給數組a,從數組a中取出元素爲奇數的元素,賦值給數組b,然後將數組b按照從小到大的順序賦值給數組c,最後按序輸出三個數組

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(){
	int a[20],b[20],c[20];
	int j=0,count=0,temp,i;
	srand((unsigned)time(0));
	for(i=0;i<20;i++){
		//srand((unsigned)time(0));
	    a[i] = rand()%100+1;
	}
	for(i=0;i<20;i++){
		if(a[i]%2!=0){
			b[j]=a[i];
			count+=1;
		    j+=1;
		}
	}
	for(i=0;i<j;i++){
		c[i]=b[i];
	}
	for(i=0;i<j-1;i++){
		for(int k=0;k<j-1-i;k++){
			if(c[k]>c[k+1]){
			temp=c[k];
		    c[k]=c[k+1];
		    c[k+1]=temp;
			}
		}
	}
	for(i=0;i<20;i++)
	{
		printf("%d ",a[i]);
	}
	printf("\n");
    for(i=0;i<j;i++)
    {
    	printf("%d ",b[i]);
	}
	printf("\n");
	for(i=0;i<j;i++)
    {
    	printf("%d ",c[i]);
	}
	printf("\n");
	printf("%d",count);
	return 0; 
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章