| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 361 人关注过本帖
标题:指向结构体的指针遇到的问题
只看楼主 加入收藏
一个孩子
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:356
专家分:954
注 册:2012-10-1
结帖率:96.77%
收藏
已结贴  问题点数:20 回复次数:5 
指向结构体的指针遇到的问题
程序代码:
#include<stdio.h>
#include<string.h>
#define LA 4
#define LB 5
struct student
{
    int num;
    char name[8];
    struct student *next;
}a[LA],b[LB];
void main()
{
    struct student a[LA]={{101,"Wang"},{102,"Li"},{105,"Zhang"},{106,"Wei"}};
    struct student b[LB]={{103,"Zhang"},{104,"Ma"},{105,"Chen"},{107,"Guo"},{108,"Lui"}};
    int i;
    struct student *p,*p1,*p2,*head1,*head2;
    head1=a;
    head2=b;

    printf("list A:\n");
    p1=head1;
    for(p1=head1,i=1;i<=LA;i++)
    {
        if(i<LA)
            p1->next=a+i;
        else
            p1->next=NULL;
        printf("%4d%8s\n",p1->num,p1->name);
        if(i<LA)
        p1=p1->next;


    }
    printf("\n list B:\n");

    for(p2=head2,i=1;i<=LB;i++)
    {
        if(i<LB)
            p2->next=b+i;
        else
            p2->next=NULL;
        printf("%4d%8s\n",p2->num,p2->name);
        if(i<LB)
            p2=p2->next;

    }
    p1=head1;
    while(p1!=NULL)
    {
        p2=head2;
        while((p1->num!=p2->num)&&(p2->next!=NULL))
        {
            p2=p2->next;
        }
        if(p1->num==p2->num)
        {
            if(p1=head1)
                head1=p1->next;
            else
            {
                p->next=p1->next;//这句代码和下面的不要感觉也行,不知道对不对
                p1=p1->next;
            }
        }
        else
        {
            p=p1;
            p1=p1->next;
        }
   
    }
    printf("\nresult:\n");
    p1=head1;
    while(p1!=NULL)//
    {
        printf("%4d%8s\n",p1->num,p1->name);
        p1=p1->next;
    }
    //这样能输出感觉不行,不知道p1->next指向谁,如果这样可以的话那上面的输出为何搞得那么复杂,我试过了上面的输出如果用这个的话是不行的话,那为什么这里还要用这 代码,不是自相矛盾吗?

}
运行不出来,输出没有错误,就是删除相同的学号的信息后LA的其他信息显示不出来,希望高手给以指点。
搜索更多相关主题的帖子: 结构体 next 
2012-10-23 19:10
Y影子Z
Rank: 3Rank: 3
来 自:石家庄
等 级:论坛游侠
帖 子:54
专家分:110
注 册:2012-10-12
收藏
得分:7 
自引用结构体用于创建动态链表更合适


[ 本帖最后由 Y影子Z 于 2012-10-23 19:35 编辑 ]

有光明必然会有黑暗,而影子,就是光明与黑暗的缝隙
2012-10-23 19:15
jueshidouzi
Rank: 2
等 级:论坛游民
帖 子:12
专家分:32
注 册:2011-10-5
收藏
得分:7 
应该把你的代码拆分成几个子函数,每个函数负责一件事,这样更清晰,而且更简单
2012-10-23 19:41
一个孩子
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:356
专家分:954
注 册:2012-10-1
收藏
得分:0 
..我运行不出来啊,希望能给我改下,别改的太大就行,谢谢

重要的不是结果,是求一个结果的过程,哪怕千难万难,当你有想要的结果时,你已走的很远
2012-10-23 19:45
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:7 
感觉你的代码有点乱,本身是个数组,又想用链表的方式来操作?

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2012-10-23 20:10
一个孩子
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:356
专家分:954
注 册:2012-10-1
收藏
得分:0 
这是结构体,应该不是数组吧,我写的是谭浩强上的题目,这是答案,可是我运行不出来,很是郁闷。

重要的不是结果,是求一个结果的过程,哪怕千难万难,当你有想要的结果时,你已走的很远
2012-10-23 20:35
快速回复:指向结构体的指针遇到的问题
数据加载中...
 
   



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

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