贴吧图像
11/23/2018

#include <stdio.h>

#include <malloc.h>

#define LEN sizeof(struct  student)

struct  student

{  char num[6];

   char name[8];

   char sex[2];

   int age;

   struct student *next;

} stu[10];

 

int main()

{ struct student *p,*pt,*head;

  int i,length,iage,flag=1;

  int find=0;            //找到待删除元素 find=1,否则find=0

  while (flag==1)

   {

    scanf("%d",&length);

    if (length<10)

      flag=0;

   }

 

    //建立链表 

  for (i=0;i<length;i++)

     {p=(struct student *) malloc(LEN);

      if (i==0)

     head=pt=p;

      else

     pt->next=p;

      pt=p;

      scanf("%s",p->num);

      scanf("%s",p->name);

      scanf("%s",p->sex);

      scanf("%d",&p->age);

    }

  p->next=NULL;

  p=head;

  printf("\nNO. name sex age\n");      //显示  

  while(p!=NULL)

     {printf("%4s%8s%6s%6d\n",p->num,p->name,p->sex,p->age);

      p=p->next;

     }

  scanf("%d",&iage);

  pt=head;

  p=pt;

  if (pt->age==iage)           //如果链头是待删元素

    {p=pt->next;

     head=pt=p;

     find=1;

    }

  else                       

    pt=pt->next;

  while (pt!=NULL)

    {if (pt->age==iage)

      {p->next=pt->next;

       find=1;

      }

     else                      // 中间结点不是待删元素

       p=pt;

     pt=pt->next;

    }

  if (!find)

    printf(" not found  %d.",iage);

 

  p=head;

  printf("NO. name sex age\n"); //显示结果

  while (p!=NULL)

    {printf("%4s%8s",p->num,p->name);

     printf("%6s%6d\n",p->sex,p->age);

     p=p->next;

    }

  return 0;

}

更新时间:11/23/2018
回复(0)
0?1470885445
登录后可添加回复
贴吧图像
吧主:
尹刚
回答:0
大家可以在这里讨论使用Trustie平台时面临的各种问题,我们会对所有问题进行解答!其他用户也可以随时提供帮助,积累评分!
问题和建议
还能输入50个字符 Submit

加入QQ群

关注微信APP


×