关于自定义类的对象数组排序问题,我错在哪里?
我想把学生按学号大小排序后输出,输入输出都没问题,但排序却不能成功.
...
#define size 3
class student
{
public:
string m_name;
int m_num;
void sort ( student* stu);
void show ( student* s);
};
void student:: sort (student* stu )
{
student temp;
for (int j=0 ; j<size-1 ; j++)
{
for (int i=0 ; i<size-1-j ; i++ )
{
if (stu[i].m_num > stu[i+1].m_num)
{
temp=stu[i];
st[i]=stu[i+1];
stu[i]=temp ;
}
}
}
}
void student::show( student* s)
{
for (int i=0;i<size;i++)
{
cout<<s[i].m_name<<" "<<s[i].m_num<<endl;
}
}
int main()
{
student stu[size];
for (int j=0; j<size; j++)
{
cout<<"ener a name: ";
cin>>stu[j].m_name;
cout<<"entre a number: ";
cin>>stu[j].m_num;
}
stu->sort(stu);
stu->show (stu);
return 0;
}
推荐阅读
temp=stu[i];
st[i]=stu[i+1];
stu[i]=temp ;
看清楚最后一句,你大意了呀。


讨论区