解题思路:
通过结构体和数组来实现。首先通过结构体数组计算出总成绩,然后根据学生个数,输出每课的平均成绩。然后根据数组比较的方式,找出学生成绩和最大的那个数,及它的下标,通过下标输出成绩最好学生的信息。
注意事项:
数组与结构体数组的联合使用;
参考代码:
#include<stdio.h> struct xs//结构体 { char xh[50]; char xm[50]; int a,b,c; }; int main() { struct xs A[100];//结构体数组 int y=0;//用来作数组的起始下标 int N; int i; int p=0,o=0,m=0;//看作空容器,分别用来计算N个a课的总成绩、N个b课的总成绩、N个c课的总成绩 int B[100];//看作空容器,用来计算数3课成绩; scanf("%d",&N);//输入学生数N; for(i=0;i<N;i++)//根据N个学生数,输入结构体数组的数据 { scanf("%s%s%d%d%d",&A[i].xh,&A[i].xm,&A[i].a,&A[i].b,&A[i].c); } for(i=0;i<N;i++)//遍历,分别计算出N个a课的总成绩、N个b课的总成绩、N个c课的总成绩和每个学生的a+b+c课的总成绩; { p=p+A[i].a; o=o+A[i].b; m=m+A[i].c; B[i]=A[i].a+A[i].b+A[i].c; } for(i=0;i<N;i++)//通过B[N]个数组与B[0]比较,找出最大数也就是成绩最大数的,进而找出这个最大数的下标; { if(B[i]>B[y]) { y=i;//最大数的下标,找到了; } } printf("%d %d %d\n",p/N,o/N,m/N);//输出平均成绩; printf("%s %s %d %d %d\n",A[y].xh,A[y].xm,A[y].a,A[y].b,A[y].c);//输出成绩最好学生的数据; return 0; }
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:550 |
C二级辅导-计负均正 (C语言代码)浏览:586 |
C语言程序设计教程(第三版)课后习题9.10 (C语言代码)浏览:597 |
C语言训练-求s=a+aa+aaa+aaaa+aa...a的值 (C语言代码)浏览:585 |
这可能是一个假的冒泡法浏览:983 |
输出正反三角形 (C语言代码)浏览:774 |
蛇行矩阵 (C语言代码)浏览:742 |
2006年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:464 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:606 |
【计算球体积】 (C语言代码)浏览:1101 |