天问一号于2021年2月到达火星附件,实施火星捕获。于2021年5月择机实施降轨,着陆巡视器与环绕器分离,软着陆火星表面,火星车驶离着陆平台,开展巡视探测等工作。在此之前,我国已向太空发射多颗人造卫星,现有n(1=<n<=5)颗人造卫星,其中每颗卫星具有3个属性,分别为卫星制造年份、卫星编号、卫星载重量(属性均为int型整数值),现要求从键盘输入n以及n颗卫星的数据,然后输出载重量低于n颗卫星的平均载重量的卫星数量(平均载重量采用整型除法求解即可,无须使用浮点数除法)。请按以下结构体类型编写该程序
时间: 2024-03-25 09:35:59 浏览: 11
好的,以下是结构体类型的代码实现:
```c
#include <stdio.h>
#define MAX_SATELLITE_NUM 5
struct satellite {
int manufacturing_year;
int satellite_id;
int payload;
};
int main() {
int n;
struct satellite s[MAX_SATELLITE_NUM];
int total_payload = 0;
int count = 0;
printf("请输入卫星数量n(1<=n<=5):");
scanf("%d", &n);
printf("请输入%d颗卫星的数据(制造年份 卫星编号 载重量):\n", n);
for (int i = 0; i < n; i++) {
scanf("%d %d %d", &s[i].manufacturing_year, &s[i].satellite_id, &s[i].payload);
total_payload += s[i].payload;
}
int average_payload = total_payload / n;
for (int i = 0; i < n; i++) {
if (s[i].payload < average_payload) {
count++;
}
}
printf("载重量低于平均载重量的卫星数量为:%d\n", count);
return 0;
}
```
输入格式为:
```
请输入卫星数量n(1<=n<=5):(输入一个整数n)
请输入n颗卫星的数据(制造年份 卫星编号 载重量):
(输入n行,每行三个整数,分别为制造年份、卫星编号和载重量)
```
输出格式为:
```
载重量低于平均载重量的卫星数量为:(输出一个整数,表示载重量低于平均载重量的卫星数量)
```