有五个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入5个学生数据,要求打印每个学生3门课总平均成绩(包括学号、姓名、3门课的成绩),以及最高分的学生的数据(包括学号、姓名、3门课的成绩和平均成绩)。(30分) 要求用input函数输入5个学生数据;用average函数求总平均分;用max函数找出最高分的学生数据;总平均分和最高分的学生的数据都在主函数中输出。 #include <stdio.h> #include<string.h> #define N 5 #define M 3 stru
时间: 2023-06-18 08:05:41 浏览: 146
要求打印出3门课的平均成绩,以及平均成绩最高的学生的数据(包括学号、姓名、3
ct student{
char id[10];
char name[20];
float score[3];
float average;
};
void input(student *p){
int i;
for(i=0;i<N;i++){
printf("请输入第%d个学生的学号、姓名和3门课的成绩:\n",i+1);
scanf("%s%s%f%f%f",p[i].id,p[i].name,&p[i].score[0],&p[i].score[1],&p[i].score[2]);
p[i].average=(p[i].score[0]+p[i].score[1]+p[i].score[2])/3;
}
}
float average(student *p){
int i,j;
float aver=0;
for(i=0;i<N;i++){
aver+=p[i].average;
}
return aver/N;
}
void max(student *p){
int i;
int max_index=0;
float max_score=p[0].average;
for(i=1;i<N;i++){
if(p[i].average>max_score){
max_score=p[i].average;
max_index=i;
}
}
printf("平均成绩最高的学生是:%s, 学号:%s, 平均成绩:%.2f, 三门课的成绩分别为:%.2f, %.2f, %.2f\n",p[max_index].name,p[max_index].id,p[max_index].average,p[max_index].score[0],p[max_index].score[1],p[max_index].score[2]);
}
int main(){
student stu[N];
input(stu);
float aver=average(stu);
printf("5个学生的平均成绩为:%.2f\n",aver);
max(stu);
return 0;
}
阅读全文