0027 输入5名大学生成绩4门功课的成绩,然后求相应问题
问题描述:
输入5名大学生成绩4门功课的成绩,然后求出:
(1)每个大学生的总分;
(2)每门课程的平均分;
(3)输出总分最高的学生的姓名和总分数;
代码展示:
1 #include2 #include<string.h> 3 struct Student{ 4 char name[20]; 5 int grade[4]; //grade[0]表示语文; grade[1]表示数学; grade[2]表示英语; grade[3]表示物理; 6 int sum; //学生总分 7 int temp; 8 }Stu[5]; 9 10 int main(){ 11 int i,j; 12 int sum = 0; 13 float avg[4]; //存储平均分 14 int index=0; //存储总分最高同学的下标 15 for(i=0; i<5; i++){ //循环输入5个学生的信息 16 printf("请输入第%d个学生的姓名,以及语文、数学、英语、物理成绩:", i+1); 17 scanf("%s",&Stu[i].name); 18 scanf("%d %d %d %d",&Stu[i].grade[0],&Stu[i].grade[1],&Stu[i].grade[2],&Stu[i].grade[3]); 19 for(j=0;j<4;j++){ 20 sum += Stu[i].grade[i]; 21 } 22 Stu[i].sum = sum; 23 } 24 for(i=0;i<4;i++){ //计算各科平均分 25 int temp = 0; 26 for(j=0;j<5;j++){ 27 temp += Stu[j].grade[i]; 28 } 29 avg[i] = temp/5.0; 30 } 31 for(i=0;i<4;i++){ 32 printf("第%d门课的平均分为:%.2f\n", i+1, avg[i]); 33 } 34 for(i=1;i<5;i++){ //循环查找总分最高的学生 35 if(Stu[i].sum > Stu[index].sum){ 36 index = i; 37 } 38 } 39 printf("总分最高的学生是:%s,其总分为:%d\n",Stu[index].name, Stu[index].sum); 40 return 0; 41 }
运行截图: