处理学生的成绩--结构体

// 用结构体完成: 有五个学生,每个学生的数据包括学号,姓名,三门课的成绩。从键盘上输入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");
}



}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值