0027 输入5名大学生成绩4门功课的成绩,然后求相应问题


问题描述:

  输入5名大学生成绩4门功课的成绩,然后求出:

    (1)每个大学生的总分;

    (2)每门课程的平均分;

    (3)输出总分最高的学生的姓名和总分数;

代码展示:

 1 #include
 2 #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 }

运行截图:

相关