有一个班有四个学生,输入他们的3门课程后:(1)求第一门课程的平均分(2)找出 有1门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均成绩。分别 编写两个函数实现以上要求。(要求用结构体数组实现)
时间: 2024-05-24 22:10:36 浏览: 162
#include <stdio.h>
#define N 4
#define M 3
struct student{
int id;
float score[M];
float avg;
};
void input(struct student s[]);
void avg_score(struct student s[]);
void find_failed(struct student s[]);
int main(){
struct student s[N];
input(s);
avg_score(s);
find_failed(s);
return 0;
}
void input(struct student s[]){
for(int i=0; i<N; i++){
printf("请输入第%d个学生的学号和三门课程成绩:\n", i+1);
scanf("%d", &s[i].id);
for(int j=0; j<M; j++){
scanf("%f", &s[i].score[j]);
}
}
}
void avg_score(struct student s[]){
float sum = 0;
for(int i=0; i<N; i++){
sum += s[i].score[0];
}
printf("第一门课程的平均分为:%.2f\n", sum/N);
for(int i=0; i<N; i++){
sum = 0;
for(int j=0; j<M; j++){
sum += s[i].score[j];
}
s[i].avg = sum/M;
}
}
void find_failed(struct student s[]){
int flag = 0;
for(int i=0; i<N; i++){
for(int j=0; j<M; j++){
if(s[i].score[j] < 60){
flag = 1;
break;
}
}
if(flag){
printf("学号:%d,成绩:%.2f %.2f %.2f,平均分:%.2f\n", s[i].id, s[i].score[0], s[i].score[1], s[i].score[2], s[i].avg);
flag = 0;
}
}
}
阅读全文