| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 517 人关注过本帖
标题:编泽成功但不能运行
只看楼主 加入收藏
studythec
Rank: 1
来 自:安徽阜阳
等 级:新手上路
帖 子:31
专家分:5
注 册:2010-3-13
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
编泽成功但不能运行
输入两个单链表A,B
用新链表C输出他们的集合
程序编出来了编译成功但运行时却出现错误
错在哪里呢?


#include<iostream.h>
#include<string.h>
#include<stdlib.h>
#define NULL 0                                 //宏定义NULL为0
#define SIZ sizeof(struct stu)                 //宏定义 SIZ为sizeof(struct stu)
struct stu                                      //结构体
{
    int num;
    stu *next;
};                                                     
stu *r,*s;                                      //定义全局指针变量            
void main()
{
    stu *Ha=NULL;stu *Hb=NULL;stu *Hc=NULL;      //定义头指针
    int x;
    cout<<"in put A:"<<endl;                      //建立单链表A
    cin>>x;
    r=Ha;
    while(x!=NULL)                              
    {                       
        s=(stu*) malloc(SIZ);
        s->num=x;
        if(Ha==NULL)
            Ha->next=s;
        else
            r->next=s;
        r=s;
        cin>>x;                  
    }                           
    if(r!=NULL)
        r->next=NULL;
    cout<<"in put B:"<<endl;                      //建立单链表B
    cin>>x;
    r=Hb;
    while(x!=NULL)
    {
        s=(stu*)malloc(SIZ);
        s->num=x;
        if(Hb==NULL)                     
            Hb->next=s;
        else
            r->next=s;
        r=s;
        cin>>x;
    }
    if(r!=NULL)
        r->next=NULL;
    stu *p,*q;                                  //定义指针p,q
    r=Hc;p=Ha->next;q=Hb->next;
    while(p!=NULL&&q!=NULL)                      //生成单链表C
    {
        while(p->num!=q->num)
        {
            if(Hc=NULL)
            {
                s=(stu*)malloc(SIZ);
                s->num=p->num;
                Hc->next=s;
            }
            else
            {
                s=(stu*)malloc(SIZ);
                s->num=p->num;
                r->next=s;
            }
            r=s;
         }
          q=q->next;
          p=p->next;
    }
    r=Hc->next;
    while(r!=NULL)                       //输出C
    {
        cout<<r->num<<" ";
        r=r->next;
    }
    cout<<endl;
    free(s);                        
}


   

搜索更多相关主题的帖子: 运行 
2010-04-05 11:09
llooppzhang
Rank: 7Rank: 7Rank: 7
来 自:江苏
等 级:黑侠
威 望:5
帖 子:308
专家分:518
注 册:2009-10-18
收藏
得分:3 
截个图看看
2010-04-05 11:57
woodydongli
Rank: 2
等 级:论坛游民
帖 子:57
专家分:84
注 册:2010-4-4
收藏
得分:3 
while(x!=NULL)
x是int型,它不为NULL是什么意思啊..
运行不成功,一般就是指针问题了.自己加断点,直到你程序DANG的地方.
2010-04-05 11:57
studythec
Rank: 1
来 自:安徽阜阳
等 级:新手上路
帖 子:31
专家分:5
注 册:2010-3-13
收藏
得分:0 
未命名.rar (46.99 KB)

菜鸟一个,在校学习,多多指教!
2010-04-05 12:11
studythec
Rank: 1
来 自:安徽阜阳
等 级:新手上路
帖 子:31
专家分:5
注 册:2010-3-13
收藏
得分:0 
x!=NULL
x不为0

菜鸟一个,在校学习,多多指教!
2010-04-05 12:12
studythec
Rank: 1
来 自:安徽阜阳
等 级:新手上路
帖 子:31
专家分:5
注 册:2010-3-13
收藏
得分:0 
找到一个毛病了
但是结果扔未出现

#include<iostream.h>
#include<string.h>
#include<stdlib.h>
#define NULL 0                                 //宏定义NULL为0
#define SIZ sizeof(struct stu)                 //宏定义 SIZ为sizeof(struct stu)
struct stu                                      //结构体
{
    int num;
    stu *next;
};                                                     
stu *r,*s;                                      //定义全局指针变量            
void main()
{
    stu *Ha=NULL;stu *Hb=NULL;stu *Hc=NULL;      //定义头指针
    int x;
    cout<<"in put A:"<<endl;                      //建立单链表A
    cin>>x;
    r=Ha;
    for(;x!=NULL;cin>>x)                              
    {                       
        s=(stu*) malloc(SIZ);
        s->num=x;
        if(Ha==NULL)
            Ha=s;
        else
            r->next=s;
        r=s;
    }                           
    if(r!=NULL)
        r->next=NULL;
    r=Ha;                                     //输出单链表A
    while(r!=NULL)
    {
        cout<<r->num<<" ";
        r=r->next;
    }
     cout<<endl;
    cout<<"in put B:"<<endl;                      //建立单链表B
    cin>>x;
    r=Hb;
    for(;x!=NULL;cin>>x)
    {
        s=(stu*)malloc(SIZ);
        s->num=x;
        if(Hb==NULL)                     
            Hb=s;
        else
            r->next=s;
        r=s;
    }
    if(r!=NULL)
        r->next=NULL;
    r=Hb;
    while(r!=NULL)                            //输出单项链表B
    {
        cout<<r->num<<" ";
        r=r->next;
    }
     cout<<endl;
    stu *p,*q;                                  //定义指针p,q
    p=Ha->next;q=Hb->next;
    Hc=Ha;                                          //建立单链表C
    r=Hc;
    Hc->next=NULL;
    while(p&&q)
    {
        if(p->num<=q->num)
        {
            s=p;
            p=p->next;
        }
        else
            r->next=s;
        r=s;
    }
    if(p==NULL)
        r->next=q;
    else
        r->next=q;
    r=Hc->next;                      //输出单链表C
    while(r!=NULL)
    {
        cout<<r->num<<" ";
        r=r->next;
    }
    cout<<endl;
}

菜鸟一个,在校学习,多多指教!
2010-04-05 12:30
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:5 
    cin>>x;
    r=Ha;
    for(;x!=NULL;cin>>x)  //判断x? x是整型变量了                              
    {                       
        s=(stu*) malloc(SIZ);
        s->num=x;//完全可以cin>>s->num;
        if(Ha==NULL)
            Ha=s;
        else
            r->next=s;
        r=s;//  链表建完 补个r->next = NULL;
    }   
这里就错了 后面没必要看了 既然没有用到函数调用 那么r,s完全没必要定义为全局变量
2010-04-05 12:42
studythec
Rank: 1
来 自:安徽阜阳
等 级:新手上路
帖 子:31
专家分:5
注 册:2010-3-13
收藏
得分:0 
x!=NULL好像对程序没影响,程序运行到输出链表B后出现错误

菜鸟一个,在校学习,多多指教!
2010-04-05 13:03
studythec
Rank: 1
来 自:安徽阜阳
等 级:新手上路
帖 子:31
专家分:5
注 册:2010-3-13
收藏
得分:0 
是不是这里写错了?
    stu *p,*q;                                  //定义指针p,q
    p=Ha->next;q=Hb->next;
    Hc=Ha;                                          //建立单链表C
    r=Hc;
    Hc->next=NULL;

菜鸟一个,在校学习,多多指教!
2010-04-05 13:05
cl165
Rank: 2
等 级:论坛游民
帖 子:7
专家分:17
注 册:2010-3-25
收藏
得分:9 
        s=(stu*) malloc(SIZ);
        s->num=x;
        if(Ha==NULL)
            Ha->next=s;

你知道给S先分配空间在赋值,为什么Ha,Hb,Hc等的指针都没有分配空间就赋值了呢?你要记住,使用指针的时候一定要先分配空间了在用。
2010-04-06 11:17
快速回复:编泽成功但不能运行
数据加载中...
 
   



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

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