用这种排序法怎样可以较轻松地满足“输出平均分在前3名的学生的姓名及平均分。“这个条件?
顺便指正一下下我的编程表述问题,感谢
//编写一个程序,用结构表示一个学生的信息,每个学生的信息包括:学号、姓名、三门成绩。
//要求从键盘输入学生的数据,并输出成绩表(包括每个学生的学号、姓名、三门成绩及平均分数),并输出平均分在前3名的学生的姓名及平均分。
#include<iostream>
using namespace std;
struct M {
int ID;
char name[100];
float ch, mt, en,av[10];
};
int main()
{
M stu[10];
int i,n;
float m[100] = { 0 };
cout << "请输入学生学号、姓名、语数英成绩:" << endl;
for (i = 0; i < 10; i++)
{
cin >> stu[i].ID >> stu[i].name >> stu[i].ch >> stu[i].mt >> stu[i].en;
stu[i].av[i] = (stu[i].ch + stu[i].mt + stu[i].en) / 3;
}
for (i = 0; i < 10;i++) {
n = (int)stu[i].av[i];
m[n] =stu[i]. av[i]; //平均分排序
}
cout << "学号" << "姓名" << "语文" << "数学" << "英语" << "平均分数" << endl;
for (i = 0; i < 10; i++)
cout << stu[i].ID << stu[i].name << stu[i].ch << stu[i].mt << stu[i].en << stu[i].av << endl;
}