计算一组学生的平均成绩和不及格人数。要求使用结构体指针变量做函数参数编程。 要求:使用函数原型:void aver(struct student *ps) 输入格式: 输出格式: printf("average=%f\ncount=%d\n",avers,c); 输入样例: {{101,"Li ping",'M',45},{102,"Zhang ping",'M',62.5},{103,"He fang",'F',92.5},{104,"Chen ling",'F',87}} 输出样例: average=71.750000 count=1
时间: 2024-02-27 15:57:24 浏览: 125
好的,让我们来看一下如何使用结构体指针变量计算学生的平均成绩和不及格人数。
首先,我们需要定义一个结构体,表示学生信息,包括学号、姓名、性别和成绩。然后定义一个结构体指针变量,指向一个包含多个学生信息的数组。
接着,我们定义一个函数`aver()`,该函数接受一个结构体指针变量作为参数,计算所有学生的平均成绩和不及格人数。
最后,在`main()`函数中,我们定义一个包含多个学生信息的数组,然后调用`aver()`函数来计算平均成绩和不及格人数,并输出结果。
这是完整的代码实现:
```c
#include <stdio.h>
struct student {
int num;
char name[20];
char sex;
float score;
};
void aver(struct student *ps);
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;
}
void aver(struct student *ps)
{
float sum = 0;
int count = 0;
for (int i = 0; i < 4; i++) {
sum += (ps + i)->score;
if ((ps + i)->score < 60) {
count++;
}
}
float aver = sum / 4;
printf("average=%f\ncount=%d\n", aver, count);
}
```
在`aver()`函数中,我们使用结构体指针`ps`来遍历整个学生数组,计算所有学生的成绩总和,并统计不及格人数。最后计算平均成绩并输出结果。
在`main()`函数中,我们定义一个包含多个学生信息的数组`stu`,然后调用`aver()`函数来计算平均成绩和不及格人数,并输出结果。
输出结果为:
```
average=71.750000
count=1
```
注意,这里平均成绩的精度为6位小数,可以根据需要进行调整。同时,这里的不及格标准是60分,可以根据实际需求进行修改。
阅读全文