利用随机函数srand实现发红包程序。 输入:金额,人数 输出:输出每个人的钱数
时间: 2024-09-24 21:16:04 浏览: 59
c语言生成随机数方法介绍
利用随机函数`srand`和`rand`可以创建一个简单的发红包程序。首先,你需要包含 `<cstdlib>` 和 `<ctime>` 库以使用随机函数。下面是一个基本的伪代码示例:
```cpp
#include <iostream>
#include <cstdlib> // 包含 srand 和 rand 函数
#include <ctime> // 包含时间处理函数
// 定义一个函数来生成指定范围内的随机整数
int generateRandom(int min, int max) {
return min + (rand() % (max - min + 1));
}
int main() {
int total_amount;
int num_people;
std::cout << "请输入总金额: ";
std::cin >> total_amount;
std::cout << "请输入人数: ";
std::cin >> num_people;
// 初始化随机数发生器,这里通常使用当前时间
srand(time(0));
int remaining_amount = total_amount; // 初始化剩余金额
for (int i = 0; i < num_people; ++i) {
int person_amount = generateRandom(1, remaining_amount); // 每个人最少拿1元,最多拿剩余全部
std::cout << "第 " << (i+1) << " 人得到了: " << person_amount << " 元\n";
remaining_amount -= person_amount; // 从总额中减去已分金额
if (remaining_amount == 0) { // 如果所有钱都发完了,跳出循环
break;
}
}
if (remaining_amount > 0) {
std::cout << "剩下的金额不足以再分配,剩余: " << remaining_amount << " 元。\n";
}
return 0;
}
```
这个程序首先获取输入的总金额和人数,然后使用`srand(time(0))`初始化随机数种子,确保每次运行程序时生成的随机数序列不同。接下来,它会循环给每个人分配随机金额,直到总金额分配完毕。
阅读全文