| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
Reworld,下班在家制作游戏,1500万奖金等你拿编程微博 - 发现编程界的新鲜事
共有 489 人关注过本帖
标题:一元多项式,求思路和代码注释。
只看楼主 加入收藏
tremere
Rank: 6Rank: 6
来 自:火星
等 级:侠之大者
帖 子:223
专家分:432
注 册:2013-3-11
结帖率:70.59%
  问题点数:0  回复次数:0   
一元多项式,求思路和代码注释。
#include<stdio.h>
#include<stdlib.h>
typedef struct  Node{
    int xishu;
    int mic;
    struct Node * next;
}Lnode, *Link;

void create_list(Link &head, int n)
{
    int i;
    Link rear, s;
    rear = head;
    for (i=1; i<=n; i++)
    {
        s = (Link)malloc(sizeof(Lnode));
        scanf("%d%d", &(s->xishu), &(s->mic));
        s->next = NULL;
        rear->next = s;
        rear = s;
    }
}
void printf_list(Link head)
{
    Link p;
    p = head->next;
    while(p)
    {
        printf("%dx%d ", p->xishu, p->mic);
        p = p->next;
        if (p)
            if (p->xishu > 0) putchar('+');
    }
}
void polynomial_add(Link ha, Link hb, Link &hc)
{
    Link pa, pb, pc;
    pa = ha->next;        pb = hb->next;  pc = hc;
    while(pa && pb)
    {
        if (pa->mic < pb->mic)
        {
            pc->next = pa;    pc = pc->next;    pa = pa->next;
        }
        else if(pa->mic > pb->mic)
            {
            pc->next = pb;    pc = pc->next;  pb = pb->next;
            }
            else
            {
                int xsh;
                xsh = pa->xishu + pb->xishu;
                if (xsh)
                {
                    pa->xishu = xsh;
                    pc->next = pa;  pc = pc->next;
                }
                pa = pa->next;        pb = pb->next;
            }
    }
    if (pa)    pc->next = pa;
    if (pb) pc->next = pb;
}
int main()
{
    Link heada, headb, headc;
    int n;
    heada = (Link)malloc(sizeof(Lnode));
    headb = (Link)malloc(sizeof(Lnode));
    headc = (Link)malloc(sizeof(Lnode));
    printf("请输入多项式 A 的项数: ");
    scanf("%d", &n);
    printf("输入各项的系数和幂次: ");
    create_list(heada, n);
    printf("请输入多项式 B 的项数: ");
    scanf("%d", &n);
    printf("输入各项的系数和幂次: ");
    create_list(headb, n);
    polynomial_add(heada, headb, headc);
    printf("A+B的结果多项式为: ");
    printf_list(headc);

 
}
搜索更多相关主题的帖子: include 多项式 
2014-05-05 08:21
快速回复:一元多项式,求思路和代码注释。
数据加载中...
 
   



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

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