送书开奖,让AI帮我写了一个抽奖程序!

旅行   2024-10-27 08:22   广东  

送书开奖:

这里是书单:

《C++ Primer 中文版(第5版)》

《C++ Primer习题集(第5版)》

《Essential C++中文版》

《C++标准库(第2版)》

《深度探索C++对象模型》

《剑指Offer:名企面试官精讲典型编程题(第2版)》

《剑指Offer(专项突破版):数据结构与算法名企面试题精讲》

《Effective C++:改善程序与设计的55个具体做法(第3版 中文版)》

《More Effective C++:35个改善编程与设计的有效方法(中文版)》

《C++之美:代码整洁、安全又跑得快的30个要诀》

《C++之旅(第3版)》

《程序员的自我修养—链接、装载与库》

《编码》



这次参与人数比较多,按照留言时间顺序,从留言的前50个人里面抽取5个人:(第10个留言的编号10)

腾讯元宝平台输入:

现在有个抽奖需求,总共有50个人参加,利用C++写一个抽奖程序,要求每个人中奖概率相同,总共5个人中奖。

给出代码

#include <iostream>#include <vector>#include <algorithm>#include <cstdlib>#include <ctime>#include <cassert>#include <string>
// 设置随机种子void setRandomSeed() { srand(static_cast<unsigned int>(time(nullptr)));}
// 生成一个指定范围内的随机整数int getRandomNumber(int min, int max) { return min + rand() % (max - min + 1);}
// 从参与者中随机抽取中奖者std::vector<int> drawWinners(const std::string participants[], int numParticipants, int numWinners) { assert(numWinners <= numParticipants); // 确保中奖人数不超过参与者总数
std::vector<int> indices(numParticipants); // 初始化索引向量 for (int i = 0; i < numParticipants; ++i) { indices[i] = i; }
// 随机打乱索引 for (int i = numParticipants - 1; i >= numWinners; --i) { int j = getRandomNumber(0, i); std::swap(indices[i], indices[j]); }
// 提取前numWinners个索引 std::vector<int> winners(indices.begin(), indices.begin() + numWinners);
return winners;}
int main() { // 初始化随机种子 setRandomSeed();
// 参与者的列表 const int numParticipants = 50;    const int numWinners = 5; std::string participants[numParticipants];
// 填充参与者名单 for (int i = 0; i < numParticipants; ++i) { participants[i] = "Participant_" + std::to_string(i + 1); }
// 抽奖 std::vector<int> winnersIndices = drawWinners(participants, numParticipants, numWinners);
// 输出结果 std::cout << "Winners are:" << std::endl; for (int index : winnersIndices) { std::cout << " " << participants[index] << std::endl; }
getchar(); return 0;}

运行输出:

编号23我看了下没有关注公众号,所以再单独重新抽一个人

   const int numWinners = 1;//5; 这里5改为1

运行:

中奖编号出炉

4、16、22、28、41

编号4读者:Orio

编号16读者:rocky

编号22读者:@chen

编号28读者:天赐细莲

编号41读者:TUT

以上5位读者联系我,微信:fb964919126 发地址和想要的书籍给我!

预告:下周会继续送书,AI方面的书籍。欢迎积极参与!!!

end


CppPlayer 



关注,回复【电子书】珍藏CPP电子书资料赠送

精彩文章合集

专题推荐

【专辑】计算机网络真题拆解
【专辑】大厂最新真题

CppPlayer
一个专注面试题拆解的公众号
 最新文章