當前位置:編程學習大全網 - 源碼下載 - 如何用C語言產生壹個六位數的隨機數?

如何用C語言產生壹個六位數的隨機數?

C語言下沒有真正的隨機函數,如果用srand與rand配合產生隨機數,每個數之間的間隔需要在1秒鐘以上.

下面是我寫的壹個用來隨機產生7-9位QQ郵箱的源代碼,原理是先用隨機函數產生壹個<10的整數(這個數是所生成QQ號碼的位數),然後判斷這個數是否在7~9之間,如果滿足要求,下面將壹位壹位地產生每壹位數字,最後與"@qq.com"連接,生成壹個QQ郵箱,並寫入文件.

VC++6.0下編譯通過

函數produceQQMail()用來產生隨機數的代碼:

#include<windows.h>

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

#define MAX_ADDRESS 1000

char directory[20];

DWORD writeFile(const char*filename,char*str)

{

FILE *fp;

fp=fopen(filename,"a+");

if(fp==NULL)

{

puts("Cannot open this file!");

return -1;

}

fprintf(fp,"%s\n",str);

fflush(fp);

//fputs(str,fp);

return 1;

}

DWORD produceQQMail() //→→→→→產生QQ郵箱函數

{

unsigned int i,count;

char zj[20];

char compare[20];

unsigned long relative;

for(count=1;count<=MAX_ADDRESS;count++)

{

Sleep(600);

srand((unsigned)time(0));

while(1)

{

relative=1+(int)(10.0*rand()/(RAND_MAX+1.0));//產生QQ號碼的位數

if(relative<7||relative>9)

continue;//判斷是否滿足所需要的位數

Sleep(100);

for(i=0;i<relative;i++)

{

itoa(1+(int)(10.0*rand()/(RAND_MAX+1.0)),&zj[i],10);//生成每壹位數字,將其轉換為字符型,並保存在數組中

}

zj[i]='\0';

strcat(zj,"@qq.com");//連接生成郵箱

if(count>1&&strcmp(compare,zj)==0) //比較前後兩者以防出現相同的郵箱

continue;

strcpy(compare,zj);

if(writeFile(directory,zj)==1)

{

printf("===>生成第%d個QQ郵箱\n",count);

//system("cls");

break;

}

}

}

return 1;

}

void main()

{

puts("=>請輸入您要保存到的文件名及其目錄");

scanf("%s",directory);

puts("=>Now producing QQ mail addresses……");

produceQQMail();

}

  • 上一篇:股票選擇源代碼編輯器
  • 下一篇:哪款手機用久了不卡?
  • copyright 2024編程學習大全網