C语言计算并输出学生成绩
- 格式:doc
- 大小:21.25 KB
- 文档页数:4
问题:有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求用结构体解决,打印出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数)。
要求用input函数输入10个学生数据;用average函数求总平均分;用max
函数找出最高分的学生数据;总平均分和最高分学生的数据都在主函数中输出。程序代码:
#include
typedef struct _Student
{
char num[10];
char name[10];
float score[3];
}Student;
void input(Student msg[],int n)
{
for(int i=0;i scanf("%s,%s,%f,%f,%f",msg[i].num,msg[i].name,&msg[i].score[0];&msg[i].score[1], &msg[i].score[2]); } float average(Student msg[],int n) { float sum=0; for(int i=0;i sum+=msg[i].score[0]+msg[i].score[1]+msg[i].score[2]; return sum/(n*3); } int max(Student msg[],int n) { float sum=0; int m; for(int i=0;i { if((msg[i].score[0]+msg[i].score[1]+msg[i].score[2])>sum) { sum=msg[i].score[0]+msg[i].score[1]+msg[i].score[2]; m=i; } } return m; } int main() { int n,m,ave; printf("请输入学生总数:\n"); Student msg[n]; input(msg,n); ave=average(msg,n); m=max(msg,n); printf("%d个学生的总平均分为:%f\n",n,ave); printf("%d个学生中总成绩最高的学生信息为:\n"); printf("%s,%s,%f",msg[m].num,msg[m].name,(msg[m].score[0]+msg[m].score[1]+msg[ m].score[2])/3); return 0; } Welcome To Download !!! 欢迎您的下载,资料仅供参考!