计算一组学生的平均成绩和不及格人数。要求使用结构体指针 变量做函数参数编程。 要求:使用函数原型:void aver(struct student*ps) 输入格式: 输出格式: printf("average=%f\ncount=%d\n",avers,c); 输入样例: {{101,"Li ping",'M',45},{102,"Zhang ping",'M',62.5},{10 3,"He fang",'F',92.5},{104,"Chen ling",'F',87}} 输出样例: average=71.750000 count=1
时间: 2023-07-19 09:20:41 浏览: 54
好的,根据你的要求,我来给出完整的代码实现:
```
#include <stdio.h>
struct student {
int num; // 学号
char name[20]; // 姓名
char sex; // 性别
float score; // 成绩
};
void aver(struct student* ps) {
float sum = 0.0; // 成绩总和
int count = 0; // 不及格人数
for (int i = 0; i < 4; i++) {
sum += ps[i].score;
if (ps[i].score < 60) {
count++;
}
}
float average = sum / 4.0; // 计算平均成绩
printf("average=%.6f\ncount=%d", average, count); // 输出结果
}
int main() {
struct student stu[4] = {
{101, "Li ping", 'M', 45},
{102, "Zhang ping", 'M', 62.5},
{103, "He fang", 'F', 92.5},
{104, "Chen ling", 'F', 87}
};
aver(stu); // 调用函数计算平均成绩和不及格人数
return 0;
}
```
在主函数中,我们先定义了一个结构体数组,存储了每个学生的信息。然后,我们调用aver函数,将结构体数组的首地址作为参数传递给函数。
在aver函数中,我们使用了一个for循环来遍历结构体数组,计算成绩总和和不及格人数。最后,我们计算出平均成绩,并输出结果。
输出结果与要求一致:
```
average=71.750000
count=1
```