有n个结构体变量,内含学生学号、姓名和3门课程的成绩。要求输出平均成绩最高的学生的信息(包括学号、姓名、3门课程成绩和平均成绩)。
解题思路:将n个学生的数据表示为结构体数组。按照功能函数化的思想,分别用3个函数来实现不同的功能:
用input函数输入数据和求各学生平均成绩
用max函数找平均成绩最高的学生
用output函数输出成绩最高学生的信息
在主函数中先后调用这3个函数,用指向结构体变量的指针作实参。最后得到结果。
本程序假设n=3
————————————————
#include <iostream>
using namespace std;
struct student
{
int num;
char name[20];
float score[3];
float aver;
}stu[3];
struct student *p=stu;
int input(struct student stu[])
{
for(int i=0;i<3;i++)
{
cin>>stu[i].num>>stu[i].name>>stu[i].score[0]>>stu[i].score[1]>>stu[i].score[2];
}
}
struct student max(struct student stu[])
{
int i,m=0;
for(i=0;i<3;i++)
if (stu[i].aver>stu[m].aver) m=i;
return stu[m];
}
void output(struct student stu)
{
cout<<stu.num<<stu.name<<stu.score[0]<<stu.score[1]<<stu.score[2];
}
int main()
{
input(p);
output(max(p));
return 0;
}
完全使用分装函数完成,难搞;。
完结撒花