问题描述:
输入5名大学生成绩4门功课的成绩,然后求出:
(1)每个大学生的总分;
(2)每门课程的平均分;
(3)输出总分最高的学生的姓名和总分数;
代码展示:
1 #include<stdio.h>
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 }
运行截图:


被折叠的 条评论
为什么被折叠?



