以下是一个简单的C++实现红包分发的程序:
#include <iostream>
#include <vector>
#include <random>
// 函数:发放红包
std::vector<double> distributeRedPacket(double totalAmount, int num) {
std::vector<double> redPacket(num, 0.0);
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<> dis(1, totalAmount);
double remainAmount = totalAmount;
for (int i = 0; i < num - 1; i++) {
double amount = dis(gen) / 100.0;
redPacket[i] = amount;
remainAmount -= amount;
}
redPacket[num - 1] = remainAmount;
return redPacket;
}
// 主函数
int main() {
double totalAmount;
int num;
std::cout << "请输入红包总金额:";
std::cin >> totalAmount;
std::cout << "请输入红包个数:";
std::cin >> num;
std::vector<double> redPacket = distributeRedPacket(totalAmount, num);
std::cout << "每个红包的金额分别为:" << std::endl;
for (int i = 0; i < num; i++) {
std::cout << redPacket[i] << " ";
}
std::cout << std::endl;
return 0;
}
这个程序会向用户询问红包的总金额和要发放的红包个数,然后调用distributeRedPacket()函数发放红包,最后输出每个红包的金额。
注意,这个程序使用了C++11中的随机数生成器,通过std::uniform_int_distribution<>实现随机生成一个范围内的整数。
528

被折叠的 条评论
为什么被折叠?



