- 单片机基于C语言产生随机数组,可以用作乱序密码锁等一些随机性项目。
#include <stdlib.h>
#include <reg51.h>
uchar idata sui[10]={0,1,2,3,4,5,6,7,8,9};
uchar coda shu[10]={0,1,2,3,4,5,6,7,8,9}
void get_rand(uchar *a,uchar m)
{
int i,j,t;
srand(m);
for(i = 0; i < 10; )
{
t = rand()%10;
for(j=0;j<i;j++)
if(sui[j]==t) break;
if(j==i)
{ *a=t;
i++;
a++;
}
}
}
void main()
{
get_rand(sui,t);
display(shu[sui]);
}
随机数需要引进头文件stdlib.h
指针a指向一个随机数组,此数组可以为空,后面可以用作随机参数。
srand是随机数的播种,需要一个随机参数,如果用常数的话就每次运行程序产生的结果一样的,此参数可以是人为随机按下触发的时间。
i<10就是后面产生一个10个元素数组,%10就是参数范围是在0-9之间,第二个for是遍历,除去重复的元素,最后if是储存元素和移动指针。
代码get_rand(sui,t);中的t是播种参数,至于是什么因人而异,还有display函数也是。
代码仅供参考!!!