產生隨機數(rand()函數和srand()函數)的含義

rand()函數(產生隨機數)

在頭文件: #include<stdlib.h>
功能:返回一個[0,RAND_MAX]間的隨機整數。其中RAND_MAX是定義在stdlib.h頭文件中的一個常量。

srand()函數

功能:初始化隨機數發生器,用以生成種子數,每次種子數應爲整數,配合rand()函數使用。

在調用此函數產生隨機數前,必須先利用 srand()設置好隨機數種子,如果未設隨機數種子,rand()在調用時會自動設隨機數種子爲 1。
rand()產生的是假隨機數字,每次執行時是相同的。若要不同,以不同的值來初始化它.初始化的函數就是 srand()。

產生[0,RAND_MAX]間的十個隨機整數

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

void main()
{
    int i;
	srand((unsigned) (time(NULL)));
	for(i = 0; i <10;i++){
        printf("%d\n",rand());
	}
    system("pause");
}

產生[0,10]間的十個隨機整數

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

void main()
{
    int i;
	srand((unsigned) (time(NULL)));
	for(i = 0; i <10;i++){
		printf("%d\n",rand()%10);   //rand()%10限制了隨機數的範圍
	}
    system("pause");    
}

產生[3,8]間的十個隨機整數

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

void main()
{
    int i,j;
	srand((unsigned) (time(NULL)));
	for(i = 0; i <10;i++){
		j=rand() % 8 + 3;  //限制了隨機數的範圍,8表示範圍尾,3表示範圍頭
		printf("%d\n",j);
	}
    system("pause");
}

產生在一個數組間的十個隨機整數

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

void main()
{
    int i,j;
    int a[5]={5,56,9,7,8};
	srand((unsigned) (time(NULL)));
	for(i = 0; i <10;i++){
		j=rand() % (4 - 0 + 1)+ 0;  //限制在數組間,4表示數組尾,0表示數組開頭,+1是因爲數組元素=數組下標尾加一
		printf("%d\n",a[j]);
	}
    system("pause");   
}

產生在一個數組間,數組下標爲[2,4]之間的十個隨機整數

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

void main()
{
    int i,j;
    int a[5]={5,56,9,7,8};
	srand((unsigned) (time(NULL)));
	for(i = 0; i <10;i++){
		j=rand() % (4 - 2 +1)+2;
		printf("%d\n",a[j]);
	}
    system("pause");
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章