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");
}