
初学者编程问题 c++语言
展开全部
#include<iostream>
using
namespace
std;
typedef
struct
person
{
char
name[20];
int
age;
person
*next;
}person;
person
*create()
{
person
*head=NULL,*p1,*p2;
head=new
person;
cout<<"请输入每个人的姓名和年龄(输入0结束):";
cin>>head->name;
if(head->name[0]=='0')
return
NULL;
cin>>head->age;
p1
=head;
while(p1->name[0]!='0')
{
p2=new
person;
cout<<"请输入每个人的姓名和年龄(输入0结束):";
cin>>p2->name;
if(p2->name[0]=='0')
break;
cin>>p2->age;
p1->next
=
p2;
p1
=p2;
}
p1->next=NULL;
return
head;
}
void
sort_slist(person
*h)
{
person
*p,*q,*t;
t=(person
*)malloc(sizeof(person));
q=h->next;
p=q;
while(q!=NULL)//利用冒泡排序方法
{
p=q->next;
while(p!='\0')
{
if(q->age
<=
p->age)
{
t->age=q->age;
strcpy(t->name,q->name);
q->age=p->age;
strcpy(q->name,p->name);
p->age=t->age;
strcpy(p->name,t->name);
p=p->next;
}
else
p=p->next;
}
q=q->next;
}
}
int
main()
{
person
*head,*p;
head
=
p
=create();
while(p!=NULL)
{
cout<<p->name<<'\t'<<p->age<<endl;
p=p->next;
}
p
=
head;
sort_slist(p);
p
=
head;
while(p!=NULL)
{
cout<<p->name<<'\t'<<p->age<<endl;
p=p->next;
}
system("PAUSE");
return
0;
}
using
namespace
std;
typedef
struct
person
{
char
name[20];
int
age;
person
*next;
}person;
person
*create()
{
person
*head=NULL,*p1,*p2;
head=new
person;
cout<<"请输入每个人的姓名和年龄(输入0结束):";
cin>>head->name;
if(head->name[0]=='0')
return
NULL;
cin>>head->age;
p1
=head;
while(p1->name[0]!='0')
{
p2=new
person;
cout<<"请输入每个人的姓名和年龄(输入0结束):";
cin>>p2->name;
if(p2->name[0]=='0')
break;
cin>>p2->age;
p1->next
=
p2;
p1
=p2;
}
p1->next=NULL;
return
head;
}
void
sort_slist(person
*h)
{
person
*p,*q,*t;
t=(person
*)malloc(sizeof(person));
q=h->next;
p=q;
while(q!=NULL)//利用冒泡排序方法
{
p=q->next;
while(p!='\0')
{
if(q->age
<=
p->age)
{
t->age=q->age;
strcpy(t->name,q->name);
q->age=p->age;
strcpy(q->name,p->name);
p->age=t->age;
strcpy(p->name,t->name);
p=p->next;
}
else
p=p->next;
}
q=q->next;
}
}
int
main()
{
person
*head,*p;
head
=
p
=create();
while(p!=NULL)
{
cout<<p->name<<'\t'<<p->age<<endl;
p=p->next;
}
p
=
head;
sort_slist(p);
p
=
head;
while(p!=NULL)
{
cout<<p->name<<'\t'<<p->age<<endl;
p=p->next;
}
system("PAUSE");
return
0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询