#include<stdio.h>
#include<malloc.h>
#include<string.h>
struct students
{
int num;
char name[10];
struct students *next;
};
int n;
struct students *read();
struct students *sort(struct students *head);
void Printf(struct students *temp);
int main()
{
int T;
struct students *num,*temp;
scanf("%d",&T);
for(int i=0;i<T;i++)
{
num=read();
}
temp=sort(num);
Printf(temp);
return 0;
}
struct students *read()
{
struct students *p,*head=NULL,*tail=NULL;
int num;
char name[10];
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d %s",&num,&name);
p=(struct students *)malloc(sizeof(struct students));
p->num=num;
strcpy(p->name,name);
p->next=NULL;
if(head==NULL)
head=p;
else
tail->next=p;
tail=p;
}
return head;
}
struct students *sort(struct students *head)
{
struct students *p=head;
int temp;
char name1[10];
while(p!=NULL)
{
while(p->next!=NULL)
{
if(p->num>p->next->num)
{
temp=p->num;
strcpy(name1,p->name);
p->num=p->next->num;
strcpy(p->name,p->next->name);
p->next->num=temp;
strcpy(p->next->name,name1);
}
p=p->next;
}
p=p->next;
}
return head;
}
void Printf(struct students *temp)
{
struct students *p;
for(p=temp;p!=NULL;p=p->next)
{
printf("%d %s\n",p->num,p->name);
}
}
帮我看看为什么运行结果是对的
提交却是答案错误。
谢谢