用c语言编写程序,计算一组学生的平均成绩和不及格人数。要求使用结构体指针变量做函数参数编程。要求:使用函数原型:void aver(struct student *ps)
时间: 2024-03-06 18:51:14 浏览: 86
C语言程序设计-有一个一维数组score,内放10个学生的成绩,用一个函数来求平均成绩;
5星 · 资源好评率100%
好的,我来帮你解决这个问题。下面是实现该功能的C语言代码:
```c
#include <stdio.h>
#define N 5 // 学生人数
struct student {
char name[20]; // 学生姓名
int score; // 学生成绩
};
void aver(struct student *ps); // 函数原型
int main() {
struct student stu[N];
int i;
// 输入学生信息
printf("请依次输入学生姓名和成绩:\n");
for (i = 0; i < N; i++) {
scanf("%s %d", stu[i].name, &stu[i].score);
}
// 调用函数计算平均成绩和不及格人数
aver(stu);
return 0;
}
void aver(struct student *ps) {
int i, sum = 0, count = 0;
float average;
// 计算总成绩和不及格人数
for (i = 0; i < N; i++) {
sum += ps[i].score;
if (ps[i].score < 60) {
count++;
}
}
// 计算平均成绩
average = (float)sum / N;
// 输出结果
printf("平均成绩为:%.2f\n", average);
printf("不及格人数为:%d\n", count);
}
```
上面的代码定义了一个结构体 `student`,包含学生的姓名和成绩。在 `main` 函数中,先输入学生信息,然后调用函数 `aver` 计算平均成绩和不及格人数。函数 `aver` 的参数是结构体指针变量 `ps`,可以直接访问 `main` 函数中定义的 `stu` 数组。
函数 `aver` 的实现中,用一个循环计算了总成绩和不及格人数,再计算平均成绩,并输出结果。注意在计算平均成绩时需要将总成绩转换为浮点数类型,以避免整数除法的问题。
希望这个代码能够解决你的问题。如果还有其他问题,欢迎继续提问。
阅读全文