| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 342 人关注过本帖, 1 人收藏
标题:链表删除问题
取消只看楼主 加入收藏
鱼游海底
Rank: 1
来 自:中国
等 级:新手上路
帖 子:132
专家分:2
注 册:2015-4-16
结帖率:57.14%
收藏(1)
已结贴  问题点数:5 回复次数:2 
链表删除问题
#include"stdio.h"
#include"stdlib.h"
#define LEN sizeof(struct Student)
struct Student
{
    long num;
    char name[20];
    char sex[5];
    int old;
    struct Student *next;
};
int n=0;
/*建立链表(不止一种方式)*/
struct Student *creat(void)
{
    struct Student *head,*p1,*p2;
    p1=p2=(struct Student *)malloc(LEN);
    printf("输入第%d学生的信息(学号(学号为零就结束),姓名,性别(man or woman),年龄):\n",n+1);
    scanf("%ld,%s,%s,%d",&p1->num,p1->name,p1->sex,&p1->old);
    head=NULL;
    while(p1->num!=0)
    {
        n++;
        if(n==1)head=p1;
        else p2->next=p1;
        p2=p1;
        p1=malloc(LEN);
        printf("输入第%d学生的信息(学号,姓名,性别(man or woman),年龄):\n",n+1);
        scanf("%ld,%s,%s,%d",&p1->num,p1->name,p1->sex,&p1->old);
    }
    p2->next=NULL;
    return head;
}
struct Student *del(struct Student *head,int old)
{
    struct Student *p1,*p2;
    int i=1;
    p1=head;
    while(i==1)
    {
        while((old!=p1->old)&&(p1->next!=NULL))
        {
            p2=p1;p1=p1->next;
        }
        if(old==p1->old)
        {
            if(p1==head)head=p1->next;
            else p2->next=p1->next;
            i=1;
        }
        else
        {
            printf("%d not been found!\n",old);i=0;
        }

    }
    return (head);
}
void print(struct Student *head)
{
    struct Student *p;
    printf("\nnow these %d records are:\n",n);
    p=head;
    if(head!=NULL)
    {
        do
        {
            printf("%ld,%s,%s,%d",p->num,p->name,p->sex,p->old);
            p=p->next;
        }while(p!=NULL);
    }
}
int main(void)
{
    int old;
    struct Student *head;
    head=creat();
    printf("输入一个年龄:");
    scanf("%d",&old);
    head=del(head,old);
    print(head);
    return 0;
}
为什么编译没有出现错误,而结果却不是正确的?特别是查找删除和输出新的链表那一块!!
搜索更多相关主题的帖子: include 信息 姓名 
2015-05-28 09:14
鱼游海底
Rank: 1
来 自:中国
等 级:新手上路
帖 子:132
专家分:2
注 册:2015-4-16
收藏
得分:0 
回复 2楼 情.难言ゝ
多谢哈!原来在这里,之前没有看到
2015-05-28 20:09
鱼游海底
Rank: 1
来 自:中国
等 级:新手上路
帖 子:132
专家分:2
注 册:2015-4-16
收藏
得分:0 
回复 2楼 情.难言ゝ
问题又来了,为什么我在编译的时候系统会显示   数字没有被找到?   而实际数字已被找到了,而且已经被删除了。。。
2015-05-28 20:28
快速回复:链表删除问题
数据加载中...
 
   



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

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