| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 505 人关注过本帖
标题:麻烦大家帮我看下我写的一元多项式错在哪里,我想了好久都不知道。谢谢大家 ...
只看楼主 加入收藏
a475875867
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-4-14
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:6 
麻烦大家帮我看下我写的一元多项式错在哪里,我想了好久都不知道。谢谢大家了!
#include <stdio.h>
#include <math.h>
typedef struct LinkNode
{
    float coef;
    int index;
    struct LinkNode *next;
}linknode;

void createlink(linknode *head)
{
    int z;
    linknode *p,*s;
    p=head;
    float a=1;
    int n;
    int b=1;
    printf("请按多项式指数由高到低输入系数和指数:\n");
    while(z)
    {
        scanf("%f %d",&a,&b);
        if(fabs(a)>0.000001)
        {
            s=new linknode;
            s->coef=a;
            s->index=b;
            s->next=NULL;
            p->next=s;
            p=s;
            n++;
        }
        else z=0;
    }
}
void show(linknode *head)
{
    linknode *p;
    p=head->next;
    while(p&&p->next)
    {
            printf("\(%fx^%d\)+",p->coef,p->index);
            p=p->next;
    }
    printf("\(%fx^%d\) ",p->coef,p->index);
    printf("\n");


}
void addtion(linknode *fa,linknode *fb,linknode *fc) //把相加的结果放进一个新链表fc中
{
    linknode *m,*n,*k;
    m=fa->next;
    n=fb->next;
    k=fc->next;
    while(m&&n)
    {
        if(m->index>n->index)
        {
            k=m;
            m=m->next;
            k=k->next;
        }
        else if(m->index<n->index)
        {
            k=n;
            n=n->next;
            k=k->next;
        }
        else
        {
            k->coef=m->coef+n->coef;
            k->index=m->index;
            m=m->next;
            n=n->next;
            k=k->next;
        }
     if(m)         
         k=m;
     else        
         k=n;


    }
}
void main()
{
    linknode *fa,*fb,*fc;
    fa=new linknode;
    fb=new linknode;
    fc=new linknode;
    fa->next=NULL;
    fb->next=NULL;
    fc->next=NULL;
    createlink(fa);
    printf("fa(x)=");
    show(fa);
    createlink(fb);
    printf("fb(x)=");
    show(fb);
    addtion(fa,fb,fc);
    printf("fa(x)+fb(x)=");
    show(fc);
}
搜索更多相关主题的帖子: head next include 多项式 
2012-04-14 12:48
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
也把自己遇到的错误简单地介绍下
2012-04-14 15:30
a475875867
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-4-14
收藏
得分:0 
在建表fa和fb好像没问题,问题就出现在将fa+fb的结果存放在链表fc中。麻烦大家看看void addtion(linknode *fa,linknode *fb,linknode *fc)中,我把相加的结果放进一个新链表fc中,在建表fc的过程中出错在那了,谢谢!
2012-04-14 15:53
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:10 
程序 fc->next =NULL那么 你的k就是NULL    后面对K的操作你只是改变了 k的值  并不会改变fc->next的指向  它的指向 依然是NULL   可以自己跟踪下看看   
2012-04-14 16:20
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
对链表的操作  一定要确保前驱的有效性
2012-04-14 16:22
a475875867
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-4-14
收藏
得分:0 
谢谢,真是一针见血啊!。太感谢你了,我真是不够细心,题目也写错了。谢谢你帮我解决问题
2012-04-14 22:18
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
回复 6楼 a475875867
相互学习   不用客气   谁都不太可能保证没错   有时难免会有错的很“理直气壮”的时候
2012-04-15 00:43
快速回复:麻烦大家帮我看下我写的一元多项式错在哪里,我想了好久都不知道。谢谢 ...
数据加载中...
 
   



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

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