解题思路:
通过结构体和数组来实现。首先通过结构体数组计算出总成绩,然后根据学生个数,输出每课的平均成绩。然后根据数组比较的方式,找出学生成绩和最大的那个数,及它的下标,通过下标输出成绩最好学生的信息。
注意事项:
数组与结构体数组的联合使用;
参考代码:
#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 人评分
简单的a+b (C语言代码)浏览:763 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:676 |
【回文数(二)】 (C语言代码)浏览:799 |
简单的a+b (C语言代码)浏览:596 |
C语言训练-求函数值 (C语言代码)浏览:597 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:485 |
C语言训练-列出最简真分数序列* (C语言代码)浏览:654 |
WU-链表数据求和操作 (C++代码)浏览:1376 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:587 |
母牛的故事 (C语言代码)浏览:1023 |