在全系1000名学生中举行募捐,当总数达到10万结束,统计此时捐款人数以及平均每人搞款的数目。C语言
时间: 2024-10-20 12:07:51 浏览: 46
在C语言中,你可以使用数组、循环和计数器来模拟这样的场景。首先,你需要定义一个数组来存储学生的捐款情况,然后通过一个循环来逐个询问学生是否捐款,直到总捐款达到10万为止。每收到一次捐款,就增加捐款人数并更新总捐款额。最后,计算平均捐款数额。
以下是一个简单的示例代码:
```c
#include <stdio.h>
#define MAX_STUDENTS 1000
#define target_donation 100000
int donations[MAX_STUDENTS]; // 存储每个学生的捐款
int total_donations = 0; // 总捐款金额
int num_donors = 0; // 捐款人数
void askDonation() {
int amount;
printf("请输入第%ld位学生的捐款金额(0表示不捐款): ", num_donors + 1);
scanf("%d", &amount);
if (amount > 0) { // 如果捐款
total_donations += amount;
donations[num_donors] = amount;
num_donors++;
}
}
int main() {
for (int i = 0; i < MAX_STUDENTS && total_donations < target_donation; i++) {
askDonation();
}
double average_donation = (total_donations > 0) ? (double)total_donations / num_donors : 0;
printf("\n在总额达到 %d 元时,共有 %d 名学生捐款。\n平均每人捐款额为 %.2f 元.\n", target_donation, num_donors, average_donation);
return 0;
}
```
注意:这个例子假设所有学生的捐款都是非负整数,并且不会超过`INT_MAX`。实际应用中,你可能需要对输入进行有效性检查。此外,这个代码并不包括用户界面交互,只是一个基本的逻辑演示。
阅读全文