计算一组学生的平均成绩和不及格人数。要求使用结构体指针 变量做函数参数编程。 要求:使用函数原型: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 21:20:41 浏览: 182
有一个一维数组内放个学生成绩求平均成绩。-C++程序设计__谭浩强100%完整
好的,我来解答你的问题。
你的问题是关于C语言的,需要计算一组学生的平均成绩和不及格人数,要求使用结构体指针变量做函数参数编程。输入格式已给出,输出格式也已给出,使用函数原型:void aver(struct student*ps)。
首先,我们需要定义一个结构体来存储每个学生的信息,包括学号、姓名、性别和成绩。结构体可以这样定义:
```
struct student {
int num; // 学号
char name[20]; // 姓名
char sex; // 性别
float score; // 成绩
};
```
然后,我们需要定义一个函数来计算平均成绩和不及格人数,函数原型已经给出:void aver(struct student*ps)。这个函数接收一个指向结构体的指针作为参数,指针指向的结构体数组存储了学生的信息。
函数实现如下:
```
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); // 输出结果
}
```
在这个函数中,我们使用了一个for循环来遍历结构体数组,计算成绩总和和不及格人数。最后,我们计算出平均成绩,并输出结果。
完整代码如下:
阅读全文