//C程序设计第四版(谭浩强)
//章节:第九章 用户自己建立数据类型
//题号:9.5
//题目:有10个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输入10个学生数据,
//要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课程成绩、平均分数)
#include <stdio.h>
#include <stdlib.h>
struct student //最好首字母大写,这里为输入简单用小写
{
int num;
char name[10];
float score[3];
float aver;
};
void input(struct student stu[])
{
int i;
printf("请输入10个学生的学号、姓名、三门课程成绩(以空格隔开):\n");
for(i=0;i<10;i++)
{
scanf("%d %s %f %f %f",&stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
stu[i].aver=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
}
}
void average(struct student stu[])
{
int i;
float aver1,aver2,aver3,sum1=0,sum2=0,sum3=0;
for(i=0;i<10;i++)
{
sum1+=stu[i].score[0];
sum2+=stu[i].score[1];
sum3+=stu[i].score[2];
}
aver1=sum1/10.0;
aver2=sum2/10.0;
aver3=sum3/10.0;
printf("三门课程的平均成绩:\n");
printf("%6.2f%6.2f%6.2f",aver1,aver2,aver3);
}
struct student max(struct student stu[])
{
int i,m=0;
for(i=0;i<10;i++)
if(stu[i].aver>stu[m].aver)
m=i;
return stu[m];
}
void print(struct student stu)
{
printf("\n成绩最高的学生是:\n");
printf("学号:%d\n姓名:%s\n三门课成绩:%5.1f%5.1f%5.1f\n平均成绩:%6.2f\n",stu.num,stu.name,stu.score[0],stu.score[1],stu.score[2],stu.aver);
}
int main()
{
struct student stu[10],*p=stu;
input(p);
average(p);
print(max(p));
return 0;
}
9.5有10个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输入10个学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课程成绩、平均分数)
最新推荐文章于 2024-08-18 20:17:14 发布