MFC 生成随机数--彩票系统

本文详细阐述了一个基于C++的随机数生成器,通过控制输入数字范围、判断重复值并确保唯一性,最终实现一组无重复随机数的生成过程,并提供了一套完整的验证机制来检查生成的数列是否满足特定条件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

void CStudy2Dlg::OnRand()
{
 // TODO: Add your control notification handler code here
 UpdateData();
 int innum[7]={m_inum1,m_inum2,m_inum3,m_inum4,m_inum5,m_inum6,m_inum7};
 int outnum[7],i,j,count=0;
 static BOOL flag=FALSE;
 BOOL same_flag=FALSE;
 BOOL same_out=FALSE;
 for(i=0;i<7;i++)
 {
  for(j=i+1;j<7;j++)
  {
   if(innum[i]==innum[j])
   {
    same_flag=TRUE;
    MessageBox("请输入不同的数字");
    break;
   }
  }
  if(same_flag==TRUE)
   break;
 }
 if(same_flag!=TRUE)
 {
  if(flag!=TRUE)
  {
   srand(time(NULL));
   flag=TRUE;
  }
  for(;;)
  {
   m_num1=rand()%36;
   m_num2=rand()%36;
   m_num3=rand()%36;
   m_num4=rand()%36;
   m_num5=rand()%36;
   m_num6=rand()%36;
   m_num7=rand()%36;
   outnum[0]=m_num1;
   outnum[1]=m_num2;
   outnum[2]=m_num3;
   outnum[3]=m_num4;
   outnum[4]=m_num5;
   outnum[5]=m_num6;
   outnum[6]=m_num7;
   for(i=0;i<7;i++)
   {
    for(j=i+1;j<7;j++)
    {
     if(outnum[i]==outnum[j])
     {
      same_out=TRUE;
      break;
     }
     else
      same_out=FALSE;
    }
    if(same_out==TRUE)
     break;
   }
   if(same_out==FALSE)
    break;
  }
  for(i=0;i<7;i++)
   for(j=0;j<7;j++)
    if(outnum[i]==innum[j])
     count++;
  m_strTotal.Format("恭喜你,中了%d",count);
  m_strTotal1.Format("个,获得N等奖");
  UpdateData(FALSE);
 }
 if(count==7)
 {
  exit(0);
 }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值