题目:
一个学生的信息是:姓名,学号,性别,年龄等信息,用一个链表,把这些学生信息连在一起, 给出一个age, 在些链表中删除学生年龄等于age的学生信息。
解答:
#include<stdio.h>
#include<stdlib.h>
//定义一个链表,存放学生信息
struct stu
{
char name[20];
char sex;
int age;
struct stu *next;
}*linklist;
#define LEN sizeof(struct stu)//宏定义链表长度
//构造链表
struct stu *creratlist(int n)
{
int i;
struct stu *h,*p,*s;//h为头结点,p为前一结点,s为当前结点
h=(struct stu*)malloc(LEN);//头结点开辟空间
h->next=NULL;//指向NULL
p=h;//头结点指向p
for(i=0;i<n;i++)
{
s=(struct stu*)malloc(LEN);//s结点开辟空间
p->next=s;//使s为p的下一节点
printf("input name sex age \n");
scanf("%s %c %d",s->name,&s->sex,&s->age);//赋值
s->next=NULL;//让s指向NULL
p=s;
}
printf("create successful!\n");
re