<pre id=\"best-answer-content\" class=\"reply-text mb10\">帮你修改运行过了,好好看看吧。
#includeiostream.h
#includestring.h
struct chengji{
char name[10];
float fenshu;
chengji *next;
};
chengji *create(int m);
//子函数定义放在主函数后面定义,主义要先声明
chengji *f(chengji *hh,int mm);
void out(chengji *h1,int n);
void main()
{
chengji *head;int n;
cout\"请输入数据的个数N:\";cinn;
head=create(n);
head=f(head,n);
cout\"成绩排序输出班级:\"endl;
out(head,n);
}
chengji *create(int m){
//返回一个头结点以获得链表
chengji *p,*pp,*h;
cout\"请输入\"m\"个数据(包括姓名和分数)\\n\";
//float x;char a[10];cinax;p-fenshu=x;strcpy(p-name,a); //这里直接访问结构体中数据成员就可以了,不用再定义
for(int i=0;im;i)
{
p=new chengji;
//cinax;pp=new chengji;strcpy(pp-name,a);pp-fenshu=x;
if(i==0)
//创建头结点数据
{
h=p;
cout\"输入姓名:\";
cinh-name;
cout\"输入分数:\";
cinh-fenshu;}
else
{
pp-next=p;
cout\"输入姓名:\";
cinp-name;
cout\"输入分数:\";
cinp-fenshu;
}
pp=p;
}
pp-next=NULL;
return h;
}
chengji *f(chengji *hh,int mm)//成绩排序,返回排序后链表头结点
{
char aa[10];float y;
chengji *f1,*f2,*f3=hh;
for(int j=1;jmm;j)
{
f1=hh;
for(int k=0;kmm-j;k)
{
f2=f1;
f1=f1-next;
if(f1-fenshuf2-fenshu)
{strcpy(aa,f1-name);
strcpy(f1-name,f2-name);
strcpy(f2-name,aa);
y=f1-fenshu;
f1-fenshu=f2-fenshu;
f2-fenshu=y;}
}
}
return f3;
}
void out(chengji *head,int n) //输出班级
{
chengji *p1=head;
for(int i=0;in;i)
{
cout\"姓名:\"p1-name\" 分数:\"p1-fenshuendl;
p1=p1-next;
}
} |