本文实例讲述了C++抽奖程序实现方法。分享给大家供大家参考。具体实现方法如下:
一、int rand()可以生成从[0,65536)之间均匀分布的随机数。
现要求实现:有30万员工,使用rand()写一个抽奖程序,抽出人100获奖。
#include
#include
using namespace std;
typedef set 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<
for (iter = iset.begin(); iter != iset.end(); ++ iter) {
cout<
}
}
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()范围要求扩大的时候,浮点与整形数之间的强制转换问题。
int randId = (int)((double)rand() / RAND_MAX * num);
②STL中set的使用是否非常熟练?
希望本文所述对大家的C++程序设计有所帮助。
总结
以上是编程之家为你收集整理的C++抽奖程序实现方法全部内容,希望文章能够帮你解决C++抽奖程序实现方法所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
小编个人微信号 jb51ccc
喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!