问题描述
- C++中对类的一个数据成员排序,为什么排序不了
-
#include
#include
#include
#include
class List;
class person
{
public:
friend class List;
private:
person() {next=0;}
person *next;
char name[10],sex[5],tel[15],ads[20],code[10],mail[20],QQ[15],category[15];
};class List
{
public:
int sort(); // 根据姓名对人员信息排序输出
private:
person *end();
person *list;};
int List::sort()
{
int j; j=this->len();
person *p=list,*q,*s;
person *a[100];
while(p!=NULL)
{
q=p;
p=p->next;
if(p==NULL) a[0]=q;
else
{
if(strcmp(q->name,p->name)>0)
a[0]=q;
else
a[0]=p;
}
}
cout<name<
p=list;
for(int i=1;i
{
while(p!=NULL)
{
q=p;
p=p->next;
s=a[i-1];
if(strcmp(s->name,q->name)>0&&strcmp(s->name,p->name)>0)
{
if(strcmp(q->name,p->name)>0)
a[i]=q;
else
a[i]=p;
if(p->next==NULL) break;
}
}
p=list;
}
for(i=0;i
{
p=a[i];
coutname<
coutsex<
couttel<
coutads<
coutmail<
coutQQ<
coutcode<
coutcategory<<endl;}
return 1;
}