如何用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();
}
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-05-06
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
main()
{
srand(time(0));
int a=rand()%900000+100000;
printf("随机数%d",a);
}本回答被提问者和网友采纳
第2个回答  2007-09-02
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
srand( time(NULL) );
int a= rand()%900000 + 100000*(rand()%9+1);

printf("随机数%d\n",a);

return 0;
}
第3个回答  2007-09-02
那个函数好像最多32767?
一位一位的随机吧。。
相似回答