#include<stdio.h> typedef struct score { double score1; double score2; double score3; }score; typedef struct student { char num[10]; char name[100]; struct score grade; }student; //½á¹¹Ìå int aver(student stu[],int n) { double average[3]; double sum1=0.0,sum2=0.0,sum3=0.0; int i; for(i=0;i<n;i++) { sum1 += stu[i].grade.score1; sum2 += stu[i].grade.score2; sum3 += stu[i].grade.score3; } average[0] = sum1/n;average[1] = sum2/n; average[2] = sum3/n; printf("%.0f %.0f %.0f\n",average[0],average[1],average[2]); } int max(student stu[],int n) { double average[100]; int sum=0; int max_num=0; for(int i=0;i<n;i++) { sum+=stu[i].grade.score1 + stu[i].grade.score2 + stu[i].grade.score3; //sum/=3.0; average[i] = sum; sum = 0; } for(int j=1;j<n;j++) { if(average[j]>average[max_num]) { max_num = j ; } } return max_num; } void display(student stu[],int i) { printf("%s %s %.0f %.0f %.0f\n",stu[i].num,stu[i].name, stu[i].grade.score1,stu[i].grade.score2,stu[i].grade.score3); } int main() { student stu[100]; int n,i; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%s %s %lf %lf %lf",&stu[i].num,&stu[i].name, &stu[i].grade.score1,&stu[i].grade.score2,&stu[i].grade.score3); } aver(stu,n); int max_num = max(stu,n); display(stu,max_num); return 0; } |
Double click to view unformatted code.