使用c语言① 键盘输入红包总金额和红包个数,程序产生随机红包; ② 将总金额、红包个数、所有的随机红包都保存到文件 red_packet.txt 中。
时间: 2024-12-04 18:24:56 浏览: 23
在C语言中,你可以使用标准库函数如`<stdio.h>`处理键盘输入,`<stdlib.h>`进行随机数生成,并使用文件I/O操作将数据保存到文本文件中。下面是一个简单的步骤说明:
1. **获取用户输入**:
首先,你需要从用户那里获取红包总金额(double类型)和红包个数(int类型)。可以使用`scanf`函数实现,例如:
```c
double total_amount;
int num_packets;
printf("请输入红包总金额: ");
scanf("%lf", &total_amount);
printf("请输入红包个数: ");
scanf("%d", &num_packets);
```
2. **生成随机红包**:
使用`rand()`函数配合`srand()`设置随机种子,生成一定范围内的随机整数作为红包金额。为了简化,这里假设每个红包金额在0到总金额之间:
```c
#include <time.h>
srand(time(0)); // 设置随机种子
double* random_packs = malloc(num_packets * sizeof(double));
for (int i = 0; i < num_packets; i++) {
random_packs[i] = total_amount * rand() / RAND_MAX; // 随机红包金额
}
```
3. **保存数据到文件**:
使用文件指针和`fprintf`函数将数据写入到文本文件"red_packet.txt":
```c
FILE* file = fopen("red_packet.txt", "w");
if (!file) {
perror("打开文件失败");
return 1;
}
for (int i = 0; i < num_packets; i++) {
fprintf(file, "%lf\n", random_packs[i]); // 写入每行一个红包金额
}
fclose(file); // 关闭文件
free(random_packs); // 释放内存
```
完整代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
double total_amount;
int num_packets;
// 用户输入...
srand(time(0));
double* random_packs = malloc(num_packets * sizeof(double));
for (int i = 0; i < num_packets; i++) {
random_packs[i] = total_amount * rand() / RAND_MAX;
}
FILE* file = fopen("red_packet.txt", "w");
if (!file) {
perror("打开文件失败");
return 1;
}
for (int i = 0; i < num_packets; i++) {
fprintf(file, "%lf\n", random_packs[i]);
}
fclose(file);
free(random_packs);
return 0;
}
```
阅读全文