1.srand((unsigned)time(NULL));
2.int radio =rand() % 5 + 1;//radio 為隨機 1~5的整數
系統隨機函數,必須包含兩個頭文件,stdio.h,stdlib.h,time.h,。上面兩行代碼必須一起用,第一行是清空隨機函數緩存。如果沒有第一句,則每次得到的隨機函數都是一樣的。
例如,我們需要一個5位數的隨機數,代碼如下:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(){
intradio=0;
chara[5]={'\0'};
inti=0;
srand((unsigned)time(NULL));
radio=rand()%5+1;
for(i=0;i<5;i++)
{
a[i]="qwertyuiop"[rand()%10];
printf("%c\n",a[i]);
}
printf("%d\n",radio);
}
一般登錄網站都必須輸入驗證碼,驗證碼只是隨機函數而已,比如說我們要得到一個5位數的字母數字組合的驗證碼;代碼如下:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>
int main(){
inti=0;
charstr[10]="\0",str2[10]="\0";
//驗證碼
for(i=0;i<5;i++){
srand((unsigned)time(NULL)+i);
str[i]="0123456789abcdefghihklmnopqrstuvwxyz"[rand()%36];
}
printf("驗證碼:%s",str);
printf("\n");
printf("輸入驗證碼:");
fgets(str2,10,stdin);
str2[strlen(str2)-1]='\0';
if(strcmp(str,str2)!=0){
printf("驗證碼輸入錯誤\n");
return1;
}
else
printf("驗證碼輸入正確\n");
}
str[i]="0123456789abcdefghihklmnopqrstuvwxyz"[rand()%36];
這行代碼,雙引號里面的數字大小寫字母隨便寫,’%’后面的數字通常和前面的個數對應,也可以小于前面的個數,比如說就是n,那這樣只有前n個字符有效,隨機字符也會從前n個中輸出。
更正:驗證碼一般不使用0,o,1,l,2,z,這六個字符,所以應該是 str[i]="3456789abcdefghihkmnpqrstuvwxy"[rand()%30];
多謝老李的提醒,以后多向你學習