求一程序解法
#include <iostream.h> struct STUDENT
{
char name[8];
char id[10];
int score[3];
double ave;
};
STUDENT inputdata()
{
STUDENT stu;
cout < <"姓名:";
cin>>stu.name;
cout < <"学号:";
cin>>stu.id;
int averesult=0;
cout < <"三门成绩:";
cin>>stu.score[0]>>stu.score[1]>>stu.score[2];
return stu;
}
void calaverage(STUDENT *data,int nnum)
{
for(int i=0;i <nnum;i++)
data[i].ave=(data[i].score[0]+data[i].score[1]+data[i].score[2])/3.0;
}
void printdata(STUDENT *data,int nnum)
{
cout < <"\n学号\t姓名\t成绩1\t成绩2\t成绩3\t平均分\n";
for(int i=0;i <nnum;i++)
{
cout < <data[i].id < <"\t" < <data[i].name;
for(int j=0;j <3;j++)
cout < <"\t" < <data[i].score[j];
cout < <"\t" < <data[i].ave < <endl;
}
}
void main()
{
const int stunum=5;
STUDENT stu[stunum];
for(int i=0;i <stunum;i++)
{
cout < <"输入第" < <i+1 < <"个学生信息\n";
stu[i]=inputdata();
}
calaverage(stu,stunum);
printdata(stu,stunum);
}
程序:有5个学生,每个学生的数据结构包括学号,姓名,年龄,以及任意3门成绩,每个学生的平均分.
问题:若学生人数不定,且用一个函数对学生数据按平均分的高低排序并输出(从高到低),则函数应该怎样修改.
想不出来了 帮下哈~~~~谢谢!!!!