2020-06-02

用结构体存储三个学生的成绩,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成,绩),计算出平均成绩,然后按照平均分的降序排列。输出界面如图/5-2所示。具体要求为:
(1)定义结构体类型:typedef structint num;char name[20];int Score/,Score2,Score3;float average;}student;(2)函数void sort(student st[]): 按照平均分的降序排列;(3)主函数:定义3个元素的结构体数组st,按5-2界面输入输出三个学生的信息,并计算出平均成绩;调用函数sort对st三个元素按照平均分的降序排列;输出排序
代码如下:
#include<stdio.h>
struct student
{
int num;
char name[20];
double Score1,Score2,Score3;
double aver;
};
void sort(struct student stu[]);
int main()
{
int i;
struct student stu[3];
for(i=0;i<3;i++)
{
printf(“请输入学生%d的资料\n”,i+1);
printf(“学号为:”);
scanf("%d",&stu[i].num);
printf(“姓名为:”);
scanf("%s",stu[i].name);
printf(“第一门成绩是:”);
scanf("%lf",&stu[i].Score1);
printf(“第二门成绩是:”);
scanf("%lf",&stu[i].Score2);
printf(“第三门成绩是:”);
scanf("%lf",&stu[i].Score3);
stu[i].aver=1.0/3*(stu[i].Score1+stu[i].Score2+stu[i].Score3);
}
printf(“学号\t姓名\t语文\t数学\t英语\t平均分 \n”);
sort(stu);
return 0;
}
void sort(struct student stu[])
{
int i,j;
struct student temp;
for(i=1;i<=3;i++)
for(j=0;j<3;j++)
{
if(stu[j].aver<stu[j+1].aver)
{
temp=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp;
}
}
for(i=0;i<3;i++)
printf("%d\t%s\t%f\t%f\t%f\t%f \n",stu[i].num,stu[i].name,stu[i].Score1,stu[i].Score2,stu[i].Score3,stu[i].aver);
}
结果:在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值