專注電子技術學習與研究
當前位置:單片機教程網(wǎng) >> MCU設計實例 >> 瀏覽文章

C語言隨機函數(shù)

作者:劉蕊飛   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2014年03月02日   【字體:

1.srand((unsigned)time(NULL));

 

2.int radio =rand() % 5 + 1;//radio 為隨機 1~5的整數(shù)

 

 

 

系統(tǒng)隨機函數(shù),必須包含兩個頭文件,stdio.h,stdlib.htime.h,。上面兩行代碼必須一起用,第一行是清空隨機函數(shù)緩存。如果沒有第一句,則每次得到的隨機函數(shù)都是一樣的。

 

例如,我們需要一個5位數(shù)的隨機數(shù),代碼如下:

 

#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);

 

}

 

 

 

一般登錄網(wǎng)站都必須輸入驗證碼,驗證碼只是隨機函數(shù)而已,比如說我們要得到一個5位數(shù)的字母數(shù)字組合的驗證碼;代碼如下:

 

#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];

 

這行代碼,雙引號里面的數(shù)字大小寫字母隨便寫,’%’后面的數(shù)字通常和前面的個數(shù)對應,也可以小于前面的個數(shù),比如說就是n,那這樣只有前n個字符有效,隨機字符也會從前n個中輸出。
更正:驗證碼一般不使用0,o,1,l,2,z,這六個字符,所以應該是 str[i]="3456789abcdefghihkmnpqrstuvwxy"[rand()%30];
多謝老李的提醒,以后多向你學習

關閉窗口

相關文章