-
定义一个Student结构体,里面的成员有公有成员name、age,私有成员:score,从堆区连续分配3个结构体大小的空间,从键盘上输入3个学生的信息,分别存放到对应的位置上,按成绩的升序排序后输出三名学生的信息。
#include <iostream>
using namespace std;
struct student
{
string name;
int age;
private:
int score;
public:
int temp;
void input_ms()
{
cin>>score;
temp=score;
}
};
void sort(student *ptr)
{
for(int i=1;i<3;i++)
{
for(int j=0;j<3-i;j++)
{
if(ptr[j].temp>ptr[j+1].temp)
{
student temp=ptr[j];
ptr[j]=ptr[j+1];
ptr[j+1]=temp;
}
}
}
for(int i=0;i<3;i++)
{
cout<<"name="<<ptr[i].name<<" "<<"age="<<ptr[i].age<<" "<<"score="<<ptr[i].temp<<endl;
}
}
int main()
{
student *ptr=new student[3];
for(int i=0;i<3;i++)
{
cout<<"请输入第"<<i+1<<"个学生的名字";
cin>>ptr[i].name;
cout<<"请输入第"<<i+1<<"个学生的年龄";
cin>>ptr[i].age;
cout<<"请输入第"<<i+1<<"个学生的分数";
ptr[i].input_ms();
}
sort(ptr);
return 0;
}
思维导图