| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 555 人关注过本帖
标题:初学者求改错啊,我用的是vc6显示没错误,但是出不了结果怎么回事啊?帮忙看 ...
只看楼主 加入收藏
来学C语言啊
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-9-17
结帖率:50%
收藏
已结贴  问题点数:15 回复次数:1 
初学者求改错啊,我用的是vc6显示没错误,但是出不了结果怎么回事啊?帮忙看看,谢谢啊!!!!!
#include <stdio.h>//递增有序单链表,删除表中相同的多余元素
#include <stdlib.h>
#define DATATYPE char
typedef struct node
{
    DATATYPE data;
    struct node *next;
}LINKLIST;
void deletesame(LINKLIST *L);
int main(void)
{
    LINKLIST *head,*L,*p,*q,*t,*k;
    char ch;
    L=(LINKLIST *)malloc(sizeof(LINKLIST));
    head=L,head->next=NULL;
    while((ch=getchar())!='$')
    {
        L=(LINKLIST *)malloc(sizeof(LINKLIST));
        L->data=ch;
        p=head;
        q=head->next;
        while(q!=NULL&&q->data<=ch)
        {
            p=q;
            q=q->next;
        }
        p->next=L;
        L->next=q;
    }
    t=head->next;
    while(t!=NULL)
    {
        printf("%c",t->data);
        t=t->next;
    }
    deletesame(head);
    k=head->next;
    while(k!=NULL)
    {
        printf("%c",k->data);
        k=k->next;
    }
}
void deletesame(LINKLIST *L)
{
    LINKLIST *p,*q,*t;
    p=L->next;q=L->next->next;
    while(p!=NULL)
    {
        if(p->data==q->data)
        {
            t=q;
            p->next=t->next;
            q=q->next;
            free(t);
        }
        p=p->next;
    }
}

[ 本帖最后由 来学C语言啊 于 2011-9-18 20:35 编辑 ]
搜索更多相关主题的帖子: include 元素 
2011-09-18 20:22
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:15 
程序代码:
#include <stdio.h>//递增有序单链表,删除表中相同的多余元素
#include <stdlib.h>
typedef char DataType;
typedef struct Node
{
    DataType data;
    struct Node *next;
}LinkList;
void DeleteSame(LinkList *L);
int main(void)
{
    LinkList *head = NULL;
    LinkList *L = NULL;
    LinkList *p = NULL, *q = NULL;
    char ch;
    head = malloc (sizeof (LinkList));
    head->next = NULL;
    while ((ch=getchar()) != '$')
    {
        L = malloc (sizeof(LinkList));
        L->data = ch;
        p = head;
        q = head->next;
        while (NULL!=q && q->data<=ch)
        {
            p = p->next;
            q = q->next;
        }
        L->next = p->next;
        p->next = L;
        //flushall();
    }
    //输出未经处理的字样
    p = head->next;
    while (NULL != p)
    {
        printf("%c", p->data);
        p = p->next;
    }
    printf("\n");
    DeleteSame(head);
    //输出经过处理的字样
    p = head->next;
    while (NULL != p)
    {
        printf("%c", p->data);
        p = p->next;
    }
    printf("\n");
    return 0;
}
void DeleteSame(LinkList *L)
{
    LinkList *p=NULL, *fp=NULL, *t=NULL;
    fp = L->next;
    p = fp->next;
    while (NULL !=fp && NULL != p)
    {
        if (p->data == fp->data)
        {
            t = p;
            fp->next = p->next;
            p = p->next;
            free(t);
        }
        else
        {
            fp = fp->next;
            p = p->next;
        }
    }
}
2011-09-19 06:58
快速回复:初学者求改错啊,我用的是vc6显示没错误,但是出不了结果怎么回事啊? ...
数据加载中...
 
   



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

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