200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > C语言:有十个学生 每个学生的数据包括学号 姓名 3门课程的成绩 从键盘输入10个学

C语言:有十个学生 每个学生的数据包括学号 姓名 3门课程的成绩 从键盘输入10个学

时间:2019-02-08 20:41:20

相关推荐

C语言:有十个学生 每个学生的数据包括学号 姓名 3门课程的成绩 从键盘输入10个学

题目:有十个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输入10个学生数据,要求输出3门课程的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课程成绩、平均分数)。

根据题目要求,选择采取结构体类型解决问题。本例中为简便设置了三个学生的成绩,学生人数如需更改,可设置#defineN 3该值即可。

具体程序如下:

#include<stdio.h>#define N 3struct student{char num[6];char name[20];int score[3];}stu[N];int main(){int i,j,imax;float sum=0.0,aver[N],temp,average=0.0;printf("输入学生的学号、姓名和三门课的成绩:\n");for(i=0;i<N;i++){scanf("%s%s",&stu[i].num,&stu[i].name);for(j=0;j<3;j++){scanf("%d",&stu[i].score[j]);sum+=stu[i].score[j];}aver[i]=sum/3.0;//每个学生的平均成绩 sum=0;average+=aver[i];}average=average/N; //总平均成绩 printf("学号 姓名 成绩1 成绩2成绩3 平均成绩\n");for(i=0;i<N;i++){printf("%s%10s",stu[i].num,stu[i].name);for(j=0;j<3;j++)printf("%8d",stu[i].score[j]);printf("%7.2f\n",aver[i]);} temp=aver[0];for(i=0;i<N;i++)if(aver[i]>temp){temp=aver[i];imax=i;}printf("学生的总平均分为:%7.2f\n",average);printf("平均分最高的学生的数据为:\n");printf("学号 姓名 成绩1 成绩2成绩3 平均成绩\n");printf("%s%10s%5d%5d%5d%7.2f\n",stu[imax].num,stu[imax].name,stu[imax].score[0],stu[imax].score[1],stu[imax].score[2],aver[imax]);return 0;}

我们来看一下运行效果:

由图可以看出,符合我们的要求,那么关于数据对齐方式呢,我们可以对输出行的**%s%10s%5d%5d%5d%7.2f**以上数据进行修改完善。

C语言:有十个学生 每个学生的数据包括学号 姓名 3门课程的成绩 从键盘输入10个学生数据 要求输出3门课程的总平均成绩 以及最高分的学生的数据(包括学号 姓名 3门课程成绩 平均分数)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。