建链表,结点包括:学号,姓名,年龄,性别。要求输入3个人的信息,将他们按照年龄正序排序输出他们的信息。

在这里插入代码片在这里插入图片描述

#include<stdio.h>
#include<stdlib.h>
typedef struct node
{char mingzi[10],xingbie;
int nianling,xuehao;
 struct node *next;}node;
node *create()
{node *head,*p,*q;
int b; 
p=(node*)malloc(sizeof(node));
head=p;
q=p;
printf("依次输入学生的名字、学号、性别、年龄;性别是是男时输入字母k,否则输入v\n");
scanf("%s%d%c%d",p->mingzi,&p->xuehao,&p->xingbie,&p->nianling); 
printf("继续输入请按1,结束输入请按0\n");
scanf("%d",&b);
while(b)
{p=(node*)malloc(sizeof(node));
printf("依次输入学生的名字、学号、性别、年龄;性别是男时输入字母k,否则输入v\n");
scanf("%s%d%c%d",p->mingzi,&p->xuehao,&p->xingbie,&p->nianling);
printf("继续输入请按1,结束输入请按0\n");
scanf("%d",&b);
q->next=p;
q=p;
}
q->next=0;
return(head);}//建表
void  print(node * head)
{node *p;
p=head;
while(p!=0)
{printf("%s %d %c %d\n",p->mingzi,p->xuehao,p->xingbie,p->nianling);
p=p->next;
}
 } //输出
node *shunxu(node *head)
{node *p,*q,*temp;
for(p=head;p->next!=0;p=p->next)
{for(q=p->next;q!=0;q=q->next)
if(p->nianling>q->nianling)
{temp=p;
p=q;
q=temp;
}
}
return(head);
 } //排序
 int main()
 {node *head,*p;
 head=create();
 p=shunxu(head);
 print(p);
  } 
在这里插入代码片

猜你喜欢

转载自blog.csdn.net/feiqipengcheng/article/details/83006265