| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1077 人关注过本帖
标题:为什么有段语句编译器不能通过?
取消只看楼主 加入收藏
hcanhong
Rank: 1
来 自:肇庆学院网络工程系
等 级:新手上路
帖 子:58
专家分:0
注 册:2008-9-6
收藏
 问题点数:0 回复次数:12 
为什么有段语句编译器不能通过?
#include <stdio.h>
#include <stdlib.h>

#define LIST_INIT_SIZE 100
#define NULL 0

typedef struct LNode {
    int data;
    struct LNode *next;
}*LinkList;

LinkList creat(LinkList head)
{
    LinkList l, q, p;
    int ch;

    l = (LinkList)malloc(sizeof(LinkList));         
    l->data = '\0';                             
    l->next = NULL;                     

    q = l;   
    p = l;

    printf("Input the Incremental s:\n");
    scanf("%d",&ch);    //printf("%d\n",ch);

    while (ch != 0)                              
    {
        p = (LinkList)malloc(sizeof(LinkList));            
        p->data = ch;
        p->next = NULL;                    
        q->next = p;                    
        q = p;                       
        scanf("%d",&ch);
        //printf("%d\n",ch);
    
    }
    q = l;



    return q;
}   

LinkList Mergelist(LinkList A,LinkList B)
{
    LinkList pa, pb, pc;

    LinkList l;


    l = (LinkList)malloc(sizeof(LinkList));         
    l->data = '\0';                             
    l->next = NULL;   

    pa = A->next;
    pb = B->next;

//    pc = l->next;

    while (pa && pb)
    {
        if (pa->data != pb->data)
        {
            pa = pa->next;
            pb = pb->next;
        }
        else
        {
            pc = pa;
//        printf("%d\n",pc->data);
            pc = pc->next;
        //    printf("%d\n",pc->data);
            pa = pa->next;
            pb = pb->next;
        }
    }

    pc = l;

    while (pc->next != NULL)
    {
        printf(" %d",pc->next->data);
        pc = pc->next;
    }

    return pc;
}//    Mergelist

void Print(LinkList p)
{
    LinkList q;

    q = p;
    if (p != NULL)
        do {
            printf(" %d",p->data);
            p = p->next;
        }
        while (p != NULL);
}

int main()
{
    LinkList a, b, c;
    LinkList l;

    l = (LinkList)malloc(sizeof(LinkList));         
    l->data = '\0';                          
    l->next = NULL;
    
    a = l;
    b = l;
    c = l;

    a = creat(a);

    b = creat(b);

    c = Mergelist(a, b);

    /*printf("Output the Descending series:\n");

    c = c->next;

    Print(c);*/

    return 0;
}
此程序是想球俩个递增的A和B的交集C,而C也是以递增的方式输出~
上程序是莱鸟我编写的;但不能实现我的想法~我在调试的过程中(上程序是我调试的样本)发现:vc编译器不能通过:
    while (pc->next != NULL)
    {
        printf(" %d",pc->next->data);
        pc = pc->next;
    }
在Mergelist函数中已经将A和B的交集赋值到C,但为什么打印不出来呢?~~此程序错在哪里呢??小弟搞了一个多星期了,还是不能解决,故发此贴向大家请教~~~先谢谢
搜索更多相关主题的帖子: 语句 编译 语句 编译 
2008-10-01 21:58
hcanhong
Rank: 1
来 自:肇庆学院网络工程系
等 级:新手上路
帖 子:58
专家分:0
注 册:2008-9-6
收藏
得分:0 
程序不长,只是太多换行导致的~
2008-10-01 22:01
hcanhong
Rank: 1
来 自:肇庆学院网络工程系
等 级:新手上路
帖 子:58
专家分:0
注 册:2008-9-6
收藏
得分:0 
2008-10-01 22:07
hcanhong
Rank: 1
来 自:肇庆学院网络工程系
等 级:新手上路
帖 子:58
专家分:0
注 册:2008-9-6
收藏
得分:0 
帮帮忙吧~~
2008-10-01 22:33
hcanhong
Rank: 1
来 自:肇庆学院网络工程系
等 级:新手上路
帖 子:58
专家分:0
注 册:2008-9-6
收藏
得分:0 
回复 6# 守鹤 的帖子
l = (LinkList)malloc(sizeof(LinkList));         
这是错误的,

这里没有错,如果我再这样定义:
LinkList  *l;
l=(LinkList *)malloc(sizeof(LinkList));
不是将它复杂化了吗??
一个结构体指针,再定义指针类型,又分配指针的储存空间,不是更麻烦,更难操作啦~
2008-10-01 22:52
hcanhong
Rank: 1
来 自:肇庆学院网络工程系
等 级:新手上路
帖 子:58
专家分:0
注 册:2008-9-6
收藏
得分:0 
回复 7# 守鹤 的帖子
那就将它等于0咯?~
2008-10-01 22:54
hcanhong
Rank: 1
来 自:肇庆学院网络工程系
等 级:新手上路
帖 子:58
专家分:0
注 册:2008-9-6
收藏
得分:0 
[bo][un]随心[/un] 在 2008-10-1 22:39 的发言:[/bo]

编译不能通过,提示信息是什么,我试了DEV-CPP下是可以通过的




编译器没有提示错误,只是结果不出来~
就是这一段:
    pc = l;

    while (pc->next != NULL)
    {
        printf(" %d",pc->next->data);
        pc = pc->next;
    }
没有任何发应~
我用的是vc编译器
2008-10-01 22:55
hcanhong
Rank: 1
来 自:肇庆学院网络工程系
等 级:新手上路
帖 子:58
专家分:0
注 册:2008-9-6
收藏
得分:0 
在这一段中:
   else
        {
            pc = pa;
     printf("%d\n",pc->data);
            pc = pc->next;
        //    printf("%d\n",pc->data);
            pa = pa->next;
            pb = pb->next;
        }
    }
我发现pa的值是有赋值给pc的,所以我认为应该pc有将pa与pb的交集复制过来,但为什么不能打印pc呢??出了那些错误???
2008-10-01 23:20
hcanhong
Rank: 1
来 自:肇庆学院网络工程系
等 级:新手上路
帖 子:58
专家分:0
注 册:2008-9-6
收藏
得分:0 
2008-10-02 10:52
hcanhong
Rank: 1
来 自:肇庆学院网络工程系
等 级:新手上路
帖 子:58
专家分:0
注 册:2008-9-6
收藏
得分:0 
这一段出了问题:
while (pa && pb)
    {
        if (pa->data != pb->data)
        {
            pa = pa->next;
            pb = pb->next;
        }
        else
        {
            pc = pa;
//        printf("%d\n",pc->data);
            pc = pc->next;
        //    printf("%d\n",pc->data);
            pa = pa->next;
            pb = pb->next;
        }
    }?????????????????????
2008-10-02 11:56
快速回复:为什么有段语句编译器不能通过?
数据加载中...
 
   



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

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