| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 258 人关注过本帖
标题:一多项式加法的,创建链表输入的地方不知错在哪里。
只看楼主 加入收藏
windfiresnow
Rank: 1
等 级:新手上路
帖 子:5
专家分:1
注 册:2015-4-10
结帖率:100%
收藏
 问题点数:0 回复次数:0 
一多项式加法的,创建链表输入的地方不知错在哪里。
#include <stdio.h>
#include <malloc.h>
typedef int elemtype ;
typedef struct node {
    elemtype co;
    elemtype exp;
    struct node *next;
}linknode,*linklist;
//创建并添加元素
void creat(linklist l)
{
    linklist p,r;
    int co,exp;
    r=l;
    while (scanf("%d%d",&co,&exp)==2&&exp>0)
    {
        p=(linklist)malloc(sizeof(linklist));
        p->co=co;
        p->exp=exp;
        r->next=p;
        r=p;
    }
    r->next=NULL;
}
//建立空表
void creat1(linklist l)
{
    l=(linklist)malloc(sizeof(linklist));
    l->next=NULL;
}
linklist add(linklist l1,linklist l2)
{
    linklist l3;
    creat1(l3);
    linklist p=l1,q=l2;
    linklist r=l3,k;
    while (p!=NULL&&q!=NULL)
    {
        if (p->exp==q->exp)
        {
            if(p->co+q->co!=0)
            {
                p->co+=q->co;
                k=(linklist )malloc(sizeof(linklist));
                k->co=p->co;
                k->exp=p->exp;
                r->next=k;
                r=k;
            }
            p=p->next;
            q=q->next;
        }
        if(p->exp>q->exp)
        {
            k=(linklist)
            malloc(sizeof (linklist));
            k->co=q->co;
            k->exp=q->exp;
            r->next=k;
            r=k;
            q=q->next;
        }
        if(p->exp<q->exp)
        {
            k=(linklist)malloc(sizeof(linklist));
            k->co=p->co;
            k->exp=p->exp;
            r->next=k;
            r=k;
            p=p->next;
        }
        
        
    }
    while (p!=NULL)
    {
        k=(linklist)malloc (sizeof(linklist));
        k->co=p->co;
        k->exp=p->exp;
        r->next=k;
        r=k;
        p=p->next;
    }
    while (q!=NULL)
    {
        
        k=(linklist)malloc (sizeof(linklist));
        k->co=q->co;
        k->exp=q->exp;
        r->next=k;
        r=k;
        p=p->next;
    }
    r->next=NULL;
    return l3;
}
void print(linklist l)
{
    linklist p=l;
    while (p!=NULL)
   {
       printf ("%d%d",p->co,p->exp);
   }
}
int main()
{
    int n,i=0;
    linklist l1;
    linklist l2;
    linklist l3;
    scanf("%d",&n);
    while (i<n)
    {
        creat1(l1);
        creat(l1);
        creat1(l2);
        creat(l2);
        l3=add(l1,l2);
        print(l3);
    }
    return 0;
}
搜索更多相关主题的帖子: include 多项式 元素 
2015-04-10 09:15
快速回复:一多项式加法的,创建链表输入的地方不知错在哪里。
数据加载中...
 
   



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

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