相關函數
srand(), rand()
頭文件
#include<stdlib.h>
定義函數
int rand(void)
函數說明
rand()會返回一隨機數值,范圍在0至RAND_MAX 間。在調用此函數產生隨機數前,必須先利用srand()設好隨機數種子,如果未設隨機數種子,rand()在調用時會自動設隨機數種子為1。關於隨機數種子請參考srand()。
返回值
返回0至RAND_MAX之間的隨機數值,RAND_MAX定義在stdlib.h,其值為2147483647。
定義函數
void srand (unsigned int seed);
函數說明
srand()用來設置rand()產生隨機數時的隨機數種子。參數seed必須是個整數,通常可以利用geypid()或time(0)的返回值來當做seed。如果每次seed都設相同值,rand()所產生的隨機數值每次就會一樣。
srand(), rand()
頭文件
#include<stdlib.h>
定義函數
int rand(void)
函數說明
rand()會返回一隨機數值,范圍在0至RAND_MAX 間。在調用此函數產生隨機數前,必須先利用srand()設好隨機數種子,如果未設隨機數種子,rand()在調用時會自動設隨機數種子為1。關於隨機數種子請參考srand()。
返回值
返回0至RAND_MAX之間的隨機數值,RAND_MAX定義在stdlib.h,其值為2147483647。
定義函數
void srand (unsigned int seed);
函數說明
srand()用來設置rand()產生隨機數時的隨機數種子。參數seed必須是個整數,通常可以利用geypid()或time(0)的返回值來當做seed。如果每次seed都設相同值,rand()所產生的隨機數值每次就會一樣。
隨機生成指定長度字符字符串(C語言實現)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <time.h>
void get_rand_str(char s[],int num)
//如果是在一個程序的循環中不斷調用這個函數,那么是沒有效果的
//雖然也是使用的系統的時間函數來初始化隨機數發生器,但程序的
//執行速度太快了,可能執行1000次循環返回的秒數都是一樣的
//time返回時間戳
{
//定義隨機生成字符串表
char *str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz,./;\"'<>?";
int i,lstr;
char ss[2] = {0};
lstr = strlen(str);//計算字符串長度
{
//定義隨機生成字符串表
char *str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz,./;\"'<>?";
int i,lstr;
char ss[2] = {0};
lstr = strlen(str);//計算字符串長度
srand((unsigned int)time((time_t *)NULL));//使用系統時間來初始化隨機數發生器
for(i = 1; i <= num; i++){//按指定大小返回相應的字符串
sprintf(ss,"%c",str[(rand()%lstr)]);//rand()%lstr 可隨機返回0-71之間的整數, str[0-71]可隨機得到其中的字符
for(i = 1; i <= num; i++){//按指定大小返回相應的字符串
sprintf(ss,"%c",str[(rand()%lstr)]);//rand()%lstr 可隨機返回0-71之間的整數, str[0-71]可隨機得到其中的字符
strcat(s,ss);//將隨機生成的字符串連接到指定數組后面
}
}
}
}
int main()
{
char s[1401]={0};//定義一個可接收1400個字符的字符數組
get_rand_str(s,1400);
printf("%s",s); //輸出隨機生成的字符串
system("pause");
}
{
char s[1401]={0};//定義一個可接收1400個字符的字符數組
get_rand_str(s,1400);
printf("%s",s); //輸出隨機生成的字符串
system("pause");
}
/* 產生介於1 到10 間的隨機數值*/
#include<stdlib.h>
main()
{
int i,j;
for(i=0;i<10;i++)
{
j=1+(int)(10.0*rand()/(RAND_MAX+1.0));
printf("%d ",j);
}
}
執行
9 4 8 8 10 2 4 8 3 6
9 4 8 8 10 2 4 8 3 6
#include<stdlib.h>
main()
{
int i,j;
for(i=0;i<10;i++)
{
j=1+(int)(10.0*rand()/(RAND_MAX+1.0));
printf("%d ",j);
}
}
執行
9 4 8 8 10 2 4 8 3 6
9 4 8 8 10 2 4 8 3 6
/* 產生介於1 到10 間的隨機數值,此范例與執行結果可與rand()參照*/
#include<time.h>
#include<stdlib.h>
main()
{
int i,j;
srand((int)time(0));
for(i=0;i<10;i++)
{
j=1+(int)(10.0*rand()/(RAND_MAX+1.0));
printf(" %d ",j);
}
}
#include<time.h>
#include<stdlib.h>
main()
{
int i,j;
srand((int)time(0));
for(i=0;i<10;i++)
{
j=1+(int)(10.0*rand()/(RAND_MAX+1.0));
printf(" %d ",j);
}
}
執行
5 8 8 8 10 2 10 8 9 9
2 9 7 4 10 3 2 10 8 7
5 8 8 8 10 2 10 8 9 9
2 9 7 4 10 3 2 10 8 7
