1.思维导图
#include <iostream>
using namespace std;
struct Student {
public:
string name;
int age;
void input_score()
{
cin>>score;
}
float output_score()
{
return score;
}
private:
float score;
};
//按成绩排序
void sort(Student (&p)[3])
{
int i,j;
Student temp;
for(i=1;i<3;i++)
{
for(j=0;j<3-i;j++)
{
if(p[j].output_score()>p[j+1].output_score())
{
temp=p[j];
p[j]=p[j+1];
p[j+1]=temp;
}
}
}
}
//按成绩输出
void output(Student (&p)[3])
{
int i;
for(i=0;i<3;i++)
{
cout<<"学生姓名"<<p[i].name<<endl;
cout<<"学生年龄"<<p[i].age<<endl;
cout<<"学生成绩"<<p[i].output_score()<<endl;
}
}
int main()
{
Student *p=new Student[3];//申请堆区空间
Student student[3];//定义变量
Student (&rea)[3]=student;//引用
int i;
//输入学生信息
for(i=0;i<3;i++)
{
cout<<"请输入学生姓名:";
cin>>student[i].name;
cout<<"请输入学生年龄:";
cin>>student[i].age;
cout<<"请输入学生成绩:";
student[i].input_score();//成绩输入
}
sort(rea);//排序
output(rea);//输出
return 0;
}