用c语言编写程序,计算一组学生的平均成绩和不及格人数。要求使用结构体指针变量做函数参数编程
时间: 2024-03-06 11:51:10 浏览: 82
好的,下面是实现这个功能的C语言程序:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_NUM 100
struct student {
int id;
char name[20];
float score;
};
void get_info(struct student *stu, int n) {
int i;
for (i = 0; i < n; i++) {
printf("请输入第%d个学生的信息:\n", i + 1);
printf("学号:");
scanf("%d", &stu[i].id);
printf("姓名:");
scanf("%s", stu[i].name);
printf("成绩:");
scanf("%f", &stu[i].score);
}
}
void print_info(struct student *stu, int n) {
int i;
printf("学生信息如下:\n");
for (i = 0; i < n; i++) {
printf("学号:%d,姓名:%s,成绩:%.2f\n", stu[i].id, stu[i].name, stu[i].score);
}
}
void calc_avg_and_fail_num(struct student *stu, int n, float *avg_score, int *fail_num) {
int i;
float total_score = 0;
*fail_num = 0;
for (i = 0; i < n; i++) {
total_score += stu[i].score;
if (stu[i].score < 60) {
(*fail_num)++;
}
}
*avg_score = total_score / n;
}
int main() {
struct student stu[MAX_NUM];
int n, fail_num;
float avg_score;
printf("请输入学生人数(不超过%d人):", MAX_NUM);
scanf("%d", &n);
get_info(stu, n);
print_info(stu, n);
calc_avg_and_fail_num(stu, n, &avg_score, &fail_num);
printf("平均成绩为:%.2f,不及格人数为:%d\n", avg_score, fail_num);
return 0;
}
```
程序运行时,会提示用户输入学生人数和每个学生的信息,然后计算平均成绩和不及格人数并输出。其中,结构体指针变量作为函数参数传递,可以方便地访问结构体中的成员。
阅读全文