源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C++抽奖程序实现方法

  • 时间:2022-03-27 13:17 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C++抽奖程序实现方法
本文实例讲述了C++抽奖程序实现方法。分享给大家供大家参考。具体实现方法如下: 一、int rand()可以生成从[0, 65536)之间均匀分布的随机数。 现要求实现:有30万员工,使用rand()写一个抽奖程序,抽出人100获奖。
#include <iostream> 
#include <set> 
using namespace std; 
typedef set<int> ISET; 
ISET GetPridePersonId(const int num, const int pride_num) 
{   
  int id; 
  ISET iset;   
  while (1) { 
     id = (int)((double)rand() / RAND_MAX * num) % (num - 1); 
     if (iset.find(id) == iset.end()) { 
       iset.insert(id); 
     } 
     if (iset.size() >= pride_num) { 
       break; 
     }      
   }    
   return iset; 
} 
void print(ISET &iset) 
{ 
  ISET::iterator iter; 
  cout<<"item as :\n"; 
  for (iter = iset.begin(); iter != iset.end(); ++ iter) { 
    cout<<*iter<<"\n"; 
  } 
} 
int main(int argc, char **argv)  
{ 
  const int total_person = 300000; 
  const int total_pride_person = 100; 
  ISET iset = GetPridePersonId(total_person, total_pride_person); 
  print(iset); 
  return 0; 
} 

二、主要容易出错的地方: ①当rand()范围要求扩大的时候,浮点与整形数之间的强制转换问题。
[u]复制代码[/u] 代码如下:
int  randId = (int)((double)rand() / RAND_MAX * num);
②STL中set的使用是否非常熟练? 希望本文所述对大家的C++程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部