C语言计算并输出学生成绩

  • 格式:doc
  • 大小:21.25 KB
  • 文档页数:4

下载文档原格式

  / 4
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

问题:有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 !!!

欢迎您的下载,资料仅供参考!