多个学生信息排序(结构体+数组)
描述
假设学生的基本信息包括学号、姓名、三门功课成绩以及个人平均成绩。用结构体表示学生信息。输入10个学生的信息,计算平均分,并按照平均分从高到低排序后输出,两列数据之间用'\t'分隔,成绩保留两位小数。
输入输出示例
输入 输出
示例 1 20180001 爱丽丝 29 45.6 0020180002 刘德华 49 55.6 9020180003 张老三 69 65.6 8020180004 李老四 99 95.6 9020180005 杰克瑞 49 65.6 8020180006 孙大圣 89 45.6 0020180007 唐小僧 79 55.6 9020180008 王小二 69 65.6 8020180009 郭德纲 59 75.6 4020180010 小岳岳 49 85.6 80
李老四 94.87
唐小僧 74.87
张老三 71.53
王小二 71.53
小岳岳 71.53
刘德华 64.87
杰克瑞 64.87
郭德纲 58.20
孙大圣 44.87
爱丽丝 24.87
#include<stdio.h>
struct student
{
/*请补充代码*/
char id[10];
char name[10];
double point[3];
double aver;
};
int main(void)
{
struct student stu[10];
struct student stu1;
/*请补充代码*/
int i;
for(i=0;i<10;i++)
{
scanf("%s %s %lf %lf %lf",&stu[i].id,&stu[i].name,&stu[i].point[0],&stu[i].point[1],&stu[i].point[2]);
}
for(i=0;i<10;i++)
{
stu[i].aver=(stu[i].point[1]+stu[i].point[2]+stu[i].point[0])/3.0;
}
int j;
for(i=0;i<9;i++)
{
for(j=0;j<10-i-1;j++)
{
if(stu[j].aver<stu[j+1].aver)
{
stu1=stu[j];
stu[j]=stu[j+1];
stu[j+1]=stu1;
}
}
}
for(i=0;i<10;i++)
{
printf("%s\t%.2lf\n",stu[i].name,stu[i].aver);
}
return 0;
}
0.0分
2 人评分
去掉双斜杠注释 (C语言代码)浏览:1963 |
2004年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:1305 |
兰顿蚂蚁 (C++代码)浏览:1159 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:588 |
校门外的树 (C语言代码)浏览:733 |
Tom数 (C语言代码)浏览:758 |
2003年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:721 |
C语言程序设计教程(第三版)课后习题1.5 (C++代码)浏览:419 |
简单的a+b (C语言代码)浏览:363 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:487 |