使用c语言结构体输入n颗卫星编号 制造年份 卫星载重量 输出载重量低于n颗卫星的平均重量的卫星数量
时间: 2024-03-25 12:36:01 浏览: 54
好的,这是一个比较具体的问题。下面是一个可以实现该功能的C语言代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SATELLITES 100
typedef struct {
int id;
int year;
float payload;
} Satellite;
int main() {
int n;
float total_payload = 0;
float avg_payload;
int count = 0;
Satellite satellites[MAX_SATELLITES];
printf("请输入卫星数量:");
scanf("%d", &n);
// 输入n颗卫星信息
for (int i = 0; i < n; i++) {
printf("请输入第%d颗卫星的编号、制造年份和载重量(用空格分隔):", i + 1);
scanf("%d %d %f", &satellites[i].id, &satellites[i].year, &satellites[i].payload);
total_payload += satellites[i].payload;
}
// 计算平均载重量
avg_payload = total_payload / n;
// 统计载重量低于平均值的卫星数量
for (int i = 0; i < n; i++) {
if (satellites[i].payload < avg_payload) {
count++;
}
}
printf("载重量低于平均值的卫星数量为:%d\n", count);
return 0;
}
```
这段代码中,我们定义了一个 `Satellite` 结构体来表示每颗卫星的信息,包括编号、制造年份和载重量。在 `main` 函数中,我们首先输入了卫星数量 `n`,然后通过循环输入每颗卫星的信息,并计算出它们的总载重量。接着,我们计算出平均载重量,并通过另一个循环统计出载重量低于平均值的卫星数量。最后输出结果即可。
需要注意的是,这里我们假设输入的卫星数量不超过 `MAX_SATELLITES`,如果需要支持更多卫星数量,可以适当调整该值。同时,为了简化代码,这里并没有对输入的数据进行错误处理,实际使用时需要考虑到各种可能的输入错误情况,例如输入非法字符等。
阅读全文