//需要引用的头文件
#include <stdio.h>
#include <ctime>
//随机数 结构体
struct MyRandom
{
char cMathRandom;
char cBigRandom;
char cSmallRandom;
char cRandom;
};
结构体写随机数方法1(无参又返回值且返回值为结构体的数据类型)
MyRandom MyRandom_RNG()//结构体类型的无参方法
{
int seed = time(0);
srand(seed);//随机数变化随时间而变
MyRandom myRandom1;//结构体变量
myRandom1.cBigRandom = rand() % 26 + 65;
myRandom1.cSmallRandom = rand() % 26 + 97;
myRandom1.cMathRandom ='0'+rand() % 10;
int nA = rand() % 3;
if (nA==0)
myRandom1.cRandom='0'+rand() % 10;
else if(nA==1)
myRandom1.cRandom=rand() % 26 + 65;
else if(nA==2)
myRandom1.cRandom = rand() % 26 + 97;
return myRandom1;//返回结构体的数据
};
int main
{
MyRandom data=MyRandom_RNG();//结构体类型的data
printf("%c%c%c %c",data.cRandom,data.cSmallRandom,data.cBigRandom,data.cMathRandom);//打印
}
结构体写随机数方法2(有参数无返回值且参数为结构体指针类型)
void MyRandom_RNG(struct MyRandom *pMyRandom)
{
int seed = time(0);
srand(seed);
if (pMyRandom!=NULL)
{
pMyRandom->cBigRandom = rand() % 26 + 65;//pMyRandom是从main里面传进来的指针
pMyRandom->cSmallRandom = rand() % 26 + 97;
pMyRandom->cMathRandom ='0'+ rand() % 10;//记住'0'+不能忘,这是int转换char的值,不然转换不了(特别重要)
int nA = rand() % 3;
if (nA == 0)
pMyRandom->cRandom ='0'+rand() % 10;
else if (nA == 1)
pMyRandom->cRandom = rand() % 26 + 65;
else if (nA == 2)
pMyRandom->cRandom = rand() % 26 + 97;
}
};
int main
{
MyRandom myRandom2;//结构体变量
MyRandom_RNG(&myRandom2);//&myRandom2结构体变量的地址传到有参数的方法里
printf("%c%c%c%c", myRandom2.cBigRandom,myRandom2.cSmallRandom,myRandom2.nMathRandom,myRandom2.cRandom);//打印
}