| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 670 人关注过本帖
标题:[求助]请大家帮帮忙!单向链表问题
取消只看楼主 加入收藏
阿楚
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2004-12-31
收藏
 问题点数:0 回复次数:2 
[求助]请大家帮帮忙!单向链表问题
题目是用单向链表处理学生信息的程序设计! 要求: 建立一个链表,每个结点(共包括10个)包括:学号,姓名,年龄,成绩(包括数学,英语,物理,化学,体育等),输入一个年龄,如果链表中的结点所包括的年龄等于此年龄,则将此结点删除,否则将该年龄插入到该链表的任意位置。

[此贴子已经被作者于2005-1-4 16:58:38编辑过]

搜索更多相关主题的帖子: 链表 
2005-01-04 10:21
阿楚
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2004-12-31
收藏
得分:0 
请问这到题的具体思路是什么?
能帮帮忙吗?
具体些说说,单向链表我还不太熟练
谢谢大家了

2005-01-04 10:24
阿楚
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2004-12-31
收藏
得分:0 
下面是小弟自己自己写的,还没编好
请问插入的一个结点怎么往里加啊?
具体些加到哪里?
还有,不知道我定义的链表对不对,请高手帮帮忙讲解一下
小弟在这里谢谢了!!

#include<string.h>
#define NULL 0
#define LEN sizeof(struct student)
 struct student
{
 char num[6];
 char name[8];
int age;
float score[5];
struct student *next;
}stu[10];main()
{struct student*p,*pt,*head;
 int i,length,iage,flag=1;
 int find=1;    /*找到待删元素find=1,否则find=0*/
 while(flag==1)
{printf("输入链表长度(<10):\n");
 scanf("%d",&length);
 if(length<10)
flag=0;
}
/* 建立链表*/
for(i=0;i<length;i++)
{p=(struct student*)malloc(LEN);
  if(i==0)
     head=p;
  else
     pt->next=p;
     pr=p;
  printf("单号");
  scanf("%s",p->num);
  printf("姓名");
  scanf("%s",p->name);
  printf("年龄");
  scanf("%d",&p->age);
  printf("数学成绩");
  scanf("%f",&p->stu.score[0]);
  printf("英语成绩");
  scanf("%f",&p->stu.score[1]);
  printf("物理成绩");
  scanf("%f",&p->stu.score[2]);
  printf("化学成绩");
  scanf("%f",&p->stu.score[3]);
  printf("体育成绩");
  scanf("%f",&p->stu.score[4]);
}
 p->next=NULL;
 p=head;
printf("\n 学号 姓名 年龄 数学成绩 英语成绩 物理成绩 化学成绩 体育成绩\n")  /*显示*/
   while(p!=NULL)
   {
     printf("%8s%8s%6d%6f%6f%6f%6f%6f\n",p->num,p->name,p->age,p->stu.score[0],p->stu.score[1],p->stu.score[2],p->stu.score[3],p->stu.score[4]);
     p=p->next;
   }
/*删除*/
printf("请输入年龄:");   /*输入待删年龄*/
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("没有找到 %d",iage);
   p=head;
   printf("\n 学号 姓名 年龄 数学成绩 英语成绩 生物成绩 化学成绩 体育成绩\n");
   while(p!=NULL)
  { printf("%8s%8s%6d%6f%6f%6f%6f%6f\n",p->num,p->name,p->age,p->stu.score[0],p->stu.score[1],p->stu.score[2],p->stu.score[3],p->stu.score[4]);
    p=pt->next;
  }
}

2005-01-04 17:08
快速回复:[求助]请大家帮帮忙!单向链表问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022614 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved