用c语言生成八位的随机密码
includestdio.h
includestdlib.h
includetime.h
int main()
{
char pool[]=
{
'0','1','2','3','4','5','6','7','8','9',
'a','b','c','d','e','f','g','h','i','j',
'k','l','m','n','o','p','q','r','s','t',
'u','v','w','x','y','z','A','B','C','D',
'E','F','G','H','I','J','K','L','M','N',
'O','P','Q','R','S','T','U','V','W','X',
'Y','Z'
};//随机池
srand(time(0));
char pwd[9];
pwd[8]='\0';//方便作为字符串输出处理
int i=0;
while(i!=8)
{
pwd[i++]=pool[rand()%sizeof(pool)];
}
printf("密码%s",pwd);
}
[gcc &c语言] 随机生成8位的数字字母组合
程序有一个参数,表示生成的密码的长度
运行的时候要加上,比如./password 8
我写的很简单,参数没做检查,你应该自己去完善一下。
include stdlib.h
include string.h
include stdio.h
void generate(int len,char* buffer)
{
/产生密码用的字符串/
static const char string[]= "0123456789abcdefghiljklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
int i = 0;
for(; i len; i++)
{
buffer[i] = string[rand()%strlen(string)]; /产生随机数/
}
}
int main(int argc, char* argv[])
{
int len = atoi(argv[1]); /指定生成的密码长度/
srand(time(0)); /设定随机数种子/
char buffer = (char)malloc(len + 1); /分配内存/
generate(len,buffer); /生成密码/
puts(buffer); /输出到屏幕/
FILE fp = fopen("pass","w"); /打开输出文件*/
if(fp == NULL)
return -1;
fwrite(buffer, sizeof(char), len, fp); /写文件/
fclose(fp); /关闭文件/
free(buffer); /释放动态分配的内存/
return 0; /程序结束/
}
8位伪随机数生成算法c语言
用c语言产生一个八位随机数
include stdlib.h --包含这个
r= 10000000 + rand()%90000000 ;
r=rand()%n
这样的话是求0~n-1的数, 当n=100时就是0~99的随即数
要想取得[a,b)之间的随机整数,使用(rand)%(b-a))+ a,结果包含 a 而不含 b 。
r=rand()%(b-a)+a;
r=rand()%(100000000-10000000)+10000000
这样就和
r= 10000000 + rand()%90000000 ;一样的
/别的地方说的
程序一(没有指定seed的值):
for(int i=0;i10;i++)
{
ran_num=rand()%6;
coutran_num“ ”;
}
每次运行程序一都将输出:5 5 4 4 5 4 0 0 4 2
程序二(指定seed为1):
srand(1);
for(int i=0;i10;i++)
{
ran_num=rand()%6;
coutran_num“ ”;
}
每次运行程序二都将输出:5 5 4 4 5 4 0 0 4 2,跟程序一的结果完全一样。
程序三(指定seed的值为6):
srand(6);
for(int i=0;i10;i++)
{
ran_num=rand()%6;
coutran_num“ ”;
}
每次运行程序三都将输出:4 1 5 1 4 3 4 4 2 2,虽然值跟程序二不一样,不过每次运行时的结果也都相同。
程序四(指定seed的值为当前系统流逝了的时间,单位为秒(time_t time(0))):
includectime
……
srand((unsigned)time(0));
for(int i=0;i10;i++)
{
ran_num=rand()%6;
coutran_num“ ”;
}
/&&&&&&&&&&&&&&&&
include stdlib.h
include iostream.h
int main()
{
int r;
for (int i=0;i10;i++)
{r= 1000000+rand()%90000000;
srand(rand());
coutrendl;
}
return 0;
}
C语言中怎样生成随机数?
在VC中设计到随机数有两个函数
srand() and rand()
srand() 的作用是是一个种子,提供每次获得随机数的基数而已,rand()根据种子而产生随机数
注意
1:srand() 里的值必须是动态变化的,否则得到的随机数就是一个固定数
2:其实可以不用写srand() ,只用rand()就可以了,省事,简单,例子如下
如果我们想得到一个 0-60的随机数那么可以写成
int i;
i=rand()%60;
就可以了。
当然最好有个统一的标注如下:
int i;
srand((unsigned)time( NULL ));
i=rand()%60;
这样就OK了。
C语言如何编程产生随机数?
1、首先打开Visual stdio 2019,依次点击文件,新建,项目新建以一个空白的项目:
2、新建新项目以后,右键点击左边的源文件,选择添加,点击添加项:
3、选择cpp,并将下方的扩展名改为.c,然后点击确定:
4、接下来就可以用编译器编译,使用rand()函数产生C语言的随机数,需要加入stdlib.h和time.h在表头,rand()函数需要给srand()函数提供一个参数,不然系统会给定一个默认的参数,如果参数为一任意的常量的话,得到的也是伪随机数:
4、按ctrl+F5就可以运行程序了,在弹出的窗口中就会看到得到的所有随机数了: