解题思路:
通过结构体和数组来实现。首先通过结构体数组计算出总成绩,然后根据学生个数,输出每课的平均成绩。然后根据数组比较的方式,找出学生成绩和最大的那个数,及它的下标,通过下标输出成绩最好学生的信息。
注意事项:
数组与结构体数组的联合使用;
参考代码:
#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语言程序设计教程(第三版)课后习题6.8 (C语言代码)浏览:798 |
【金明的预算方案】 (C++代码)浏览:873 |
C语言程序设计教程(第三版)课后习题6.8 (C语言代码)浏览:545 |
1126题解浏览:649 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:672 |
小九九 (C++代码)简单粗暴,直接输出浏览:684 |
龟兔赛跑预测 (C++代码)浏览:1214 |
C语言程序设计教程(第三版)课后习题6.8 (C语言代码)浏览:646 |
test 4不要直接粘贴,修改内容浏览:252 |
C语言程序设计教程(第三版)课后习题10.7 (C语言代码)浏览:649 |