// 用结构体完成: 有五个学生,每个学生的数据包括学号,姓名,三门课的成绩。从键盘上输入5个学生的数据,要求输出三门课的总平均分,
// 以及最高分的学生的数据(包括学号,姓名,三门课的成绩,平均分)
// 要求: 用一个input函数输入五个学生的数据,用一个average函数求总平均分,用max函数找出最高分的学生的数据。总平均分和最高分学生的
// 数据都要在主函数中输出。
#include<stdio.h>
#include<string.h>
struct Student
{
int num;
char name[100];
float score1;
float score2;
float score3;
}std[5];
int main()
{
int max(struct Student std[5]);
double average(struct Student std[5]);
void input(struct Student std[5]);
input(std);
// struct Student std[5]={{101,"a",90,90,90},{102,"b",80,80,80},{103,"c",70,70,70},{104,"d",60,60,60},{105,"e",50,50,50}};
printf("该三门课的总平均成绩为:\n");
printf("%5.2lf\n",average(std));
printf("最高分的学生的学号及他的个人信息为:\n");
int good=max(std);
// printf("%d\n",good);
printf("学号为:%d\n",std[good].num);
printf("姓名:%s\n",std[good].name);
printf("三科成绩分别为:%5.2f %5.2f %5.2f\n",std[good].score1,std[good].score2,std[good].score3);
return 0;
}
int max(struct Student std[5])
{
int p;
float q;
p=0 ;
q=std[0].score1 ;
int i;
for(i=1;i<5;i++)
{
if(std[i].score1>q)
{
q=std[i].score2 ;
p=i;
}
if(std[i].score2 >q)
{
q=std[i].score2 ;
p=i;
}
if(std[i].score3 >q)
{
q=std[i].score2 ;
p=i;
}
}
return p;
}
double average(struct Student std[5])
{
int i;
float sum=0.0;
for(i=0;i<5;i++)
{
sum+=(std[i].score1+std[i].score2+std[i].score3);
}
double aver;
return aver=double(sum/15);
}
void input(struct Student std[5])
{
int i;
for(i=0;i<5;i++)
{
printf("请输入该生的学号:\n");
scanf("%d",&std[i].num );
printf("请输入该同学的姓名\n");
scanf("%s",std[i].name);
printf("请依次输入该同学的三门课的成绩\n");
scanf("%f%f%f",&std[i].score1,&std[i].score2,&std[i].score3);
printf("\n");
}
}
// 以及最高分的学生的数据(包括学号,姓名,三门课的成绩,平均分)
// 要求: 用一个input函数输入五个学生的数据,用一个average函数求总平均分,用max函数找出最高分的学生的数据。总平均分和最高分学生的
// 数据都要在主函数中输出。
#include<stdio.h>
#include<string.h>
struct Student
{
int num;
char name[100];
float score1;
float score2;
float score3;
}std[5];
int main()
{
int max(struct Student std[5]);
double average(struct Student std[5]);
void input(struct Student std[5]);
input(std);
// struct Student std[5]={{101,"a",90,90,90},{102,"b",80,80,80},{103,"c",70,70,70},{104,"d",60,60,60},{105,"e",50,50,50}};
printf("该三门课的总平均成绩为:\n");
printf("%5.2lf\n",average(std));
printf("最高分的学生的学号及他的个人信息为:\n");
int good=max(std);
// printf("%d\n",good);
printf("学号为:%d\n",std[good].num);
printf("姓名:%s\n",std[good].name);
printf("三科成绩分别为:%5.2f %5.2f %5.2f\n",std[good].score1,std[good].score2,std[good].score3);
return 0;
}
int max(struct Student std[5])
{
int p;
float q;
p=0 ;
q=std[0].score1 ;
int i;
for(i=1;i<5;i++)
{
if(std[i].score1>q)
{
q=std[i].score2 ;
p=i;
}
if(std[i].score2 >q)
{
q=std[i].score2 ;
p=i;
}
if(std[i].score3 >q)
{
q=std[i].score2 ;
p=i;
}
}
return p;
}
double average(struct Student std[5])
{
int i;
float sum=0.0;
for(i=0;i<5;i++)
{
sum+=(std[i].score1+std[i].score2+std[i].score3);
}
double aver;
return aver=double(sum/15);
}
void input(struct Student std[5])
{
int i;
for(i=0;i<5;i++)
{
printf("请输入该生的学号:\n");
scanf("%d",&std[i].num );
printf("请输入该同学的姓名\n");
scanf("%s",std[i].name);
printf("请依次输入该同学的三门课的成绩\n");
scanf("%f%f%f",&std[i].score1,&std[i].score2,&std[i].score3);
printf("\n");
}
}