结构体写随机数

//需要引用的头文件
#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);//打印
}              
          

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值