本题为用结构体求学生的平均分和分数最高的学生对应课程以及分数。
输入10个学生5门课的成绩,分别用函数实现以下功能:
1、计算每个学生平均分
2、计算每门课平均分
3、找出所有50个分数中最高的分数所对应的学生和课程
#include<stdio.h>
typedef struct stu{
int num[20];
float score1;
float score2;
float score3;
float score4;
float score5;
float aver;
}student;
float a[5];
int main(){
student stu[10];
student averageScore(student stu[10]);
student average5(student stu[10]);
student max(student stu[10]);
int i;
for(i=0;i<10;i++){
scanf("%d%f%f%f%f%f",stu[i].num,&stu[i].score1,&stu[i].score2,&stu[i].score3,&stu[i].score4,&stu[i].score5);
}
average5(stu);
averageScore(stu);
for(i=0;i<5;i++){
printf("the %d score's average is %f",i,a[i]);
}
max(stu);
return 0;
}
student average5(student stu[10]){
int i;
for(i=0;i<10;i++){
stu[i].aver=(stu[i].score1+stu[i].score2+stu[i].score3+stu[i].score4+stu[i].score5)/5;
printf("the %d student's average score is %f\n",stu[i].num,stu[i].aver);
}
}
student averageScore(student stu[10]){
int i;
float sum=0;
for(i=0;i<10;i++){
sum=sum+stu[i].score1;
}
a[0]=sum;
sum=0;
for(i=0;i<10;i++){
sum=sum+stu[i].score2;
}
a[1]=sum;
sum=0;
for(i=0;i<10;i++){
sum=sum+stu[i].score3;
}
a[2]=sum;
sum=0;
for(i=0;i<10;i++){
sum=sum+stu[i].score4;
}
a[3]=sum;
sum=0;
for(i=0;i<10;i++){
sum=sum+stu[i].score5;
}
a[4]=sum;
}
student max(student stu[10]){
int i,j,n,r,d;
float s[50],max1=0;
for(i=0;i<50;i=i+5){
s[i]=stu[i].score1;
s[i+1]=stu[i].score2;
s[i+2]=stu[i].score3;
s[i+3]=stu[i].score4;
s[i+4]=stu[i].score5;
}
for(i=0;i<50;i++){
for(j=i+1;j<50;j++){
if(s[i]>max1){
max1=s[i];
n=i;
}
}
}
printf("%d",n);
r=n%5;
d=n%10;
printf("the max score is %f,the %dth student's %dth score",max1,d+1,r);
}