编写程序 c5-3-2.c,程序所实现的功能是:随机红包发放。 要求: ① 键盘输入红包总金额和红包个数,程序产生随机红包; ② 将总金额、红包个数、所有的随机红包都保存到文件 red_packet.txt 中。
时间: 2024-12-04 21:24:34 浏览: 14
为了编写程序c5-2.c实现随机红包发放的功能,你可以按照以下步骤进行:
1. 首先,你需要包含必要的头文件,例如 `stdio.h` 和 `stdlib.h`,用于处理输入输出和生成随机数。
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h> // 使用time()函数设置随机数种子
```
2. 接下来,定义一个结构体(struct),存储红包的信息,包括金额和序号。假设我们叫它 `RedPacket`。
```c
typedef struct {
double amount; // 红包金额
int number; // 红包编号
} RedPacket;
```
3. 定义一个函数来生成随机红包,并将结果添加到数组中。
```c
void generateRandomRedPackets(int num_packets, double total_amount, RedPacket* packets) {
srand(time(NULL)); // 设置随机数种子
for (int i = 0; i < num_packets; i++) {
packets[i].amount = total_amount * rand() / RAND_MAX; // 生成0到total_amount之间的随机数
packets[i].number = i + 1; // 给每个红包分配唯一的编号
}
}
```
4. 主函数部分接收用户输入,生成红包,然后将其保存到文件中。
```c
int main() {
int num_packets, total_amount;
printf("请输入红包总金额和红包个数:\n");
scanf("%d %lf", &num_packets, &total_amount);
RedPacket packets[num_packets];
generateRandomRedPackets(num_packets, total_amount, packets);
FILE* file = fopen("red_packet.txt", "w"); // 打开文件准备写入
if (file == NULL) {
perror("无法打开文件");
return 1;
}
for (int i = 0; i < num_packets; i++) {
fprintf(file, "红包 %d 的金额: %.2f\n", packets[i].number, packets[i].amount);
}
fclose(file); // 关闭文件
printf("红包信息已保存至red_packet.txt\n");
return 0;
}
```
阅读全文