解题思路: 运用结构体加数组即可 先求各成绩的平均数,再把所有学生作比较找到成绩最好的学生。
使用的代码比较简单基础。
参考代码:
#include<stdio.h> struct tagSTUDENT { char no[20]; char name[20]; double math; double chinese; double english; }; int main() { int n,i,k; scanf("%d",&n); double ave_math,ave_chinese,ave_english,sum[n],max; struct tagSTUDENT std[n]; for(i=0;i<n;i++)//找平均数 { scanf("%s %s %lf %lf %lf",&std[i].no,&std[i].name,&std[i].math,&std[i].english,&std[i].chinese); ave_math+=std[i].math; ave_chinese+=std[i].chinese; ave_english+=std[i].english; } ave_math/=n; ave_chinese/=n; ave_english/=n; for(i=0;i<n;i++) { sum[i]=std[i].math+std[i].chinese+std[i].english; } max=0; for(i=0;i<n;i++)//找到成绩最好的学生 { if(sum[i]>max) max=sum[i],k=i; } printf("%g %g %g\n",ave_math,ave_english,ave_chinese); printf("%s %s %g %g %g",std[k].no,std[k].name,std[k].math,std[k].english,std[k].chinese); return 0; }
0.0分
0 人评分