标题:下面是我写的程序,有错,望指点
取消只看楼主
万俟宇暘
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-3-30
结帖率:0
已结贴  问题点数:20 回复次数:1 
下面是我写的程序,有错,望指点
#include <stdio.h>
#include <stdlib.h>
//#include <malloc.h>
typedef struct node//结构体
{
    int zhishu;//一元多项式指数
    float xishu;//一元多项式系数
    struct node *next;
}polynode,*linklist;
polynode *temp;
void crelist(polynode *l)//为链表分配空间
{
    l=(linklist)malloc(sizeof(polynode));
    l->next=NULL;
}
void distroylist(polynode *l)//销毁链表,回收空间
{
    free(l);
}
void printlist(polynode *l)//输出链表
{
    while (l!=NULL)
    {
        printf("  %fx^%d",l->xishu,l->zhishu);
        l=l->next;
    }
    printf("\n");
}
void createlist(polynode *l)//创建链表并输入值
{
    crelist(l);
    do
    {
        printf("请输入多项式的系数和指数:\n");
        scanf("%f,%d",l->xishu,l->zhishu);
        l=l->next;
        printf("继续输入?");
        //getchar();
    } while(getchar()!='n'||getchar()!='N');   
}
polynode*addlist(polynode *s,polynode *p) //链表相加
{
    float sum;
/*    while (p==NULL)
    {
        temp=p;
        p=p->next;
        temp=temp->next;
    }
    while (s==NULL)
    {
        temp=s;
        s=s->next;
        temp=temp->next;
    }*/
    while(p!=NULL&&s!=NULL)
    {
        if (s->zhishu>p->zhishu)
        {
            temp=p;
            p=p->next;
            temp=temp->next;
        }
        if (s->zhishu<p->zhishu)
        {
            temp=s;
            s=s->next;
            temp=temp->next;
        }
        else
        {
            sum=s->xishu+p->xishu;
            if(sum!=0)
            {
                temp->xishu=sum;
                temp->zhishu=s->zhishu;
            }
            s=s->next;
            p=p->next;
        }
        if (s->next==NULL)
        {
            temp=p;
            p=p->next;
            temp=temp->next;
        }
        if (p->next==NULL)
        {
            temp=s;
            s=s->next;
            temp=temp->next;
        }
    }
    temp->next=NULL;
    return temp;
}
int main()//主函数
{
    polynode *m,*n;
    createlist(m);
    printf("输入成功!\n");
    createlist(n);
    printf("输入成功!\n");
    addlist(m,n);
    printlist(m);
    printf("\n加上\n");
    printlist(n);
    printf("的结果是:\n");
    printlist(temp);
    distroylist(m);
    distroylist(n);
    return 0;
}
搜索更多相关主题的帖子: include 多项式 结构体 回收 
2014-03-30 21:39
万俟宇暘
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-3-30
得分:0 
回复 2楼 wp231957
帮我改一下,能运行就行
2014-03-30 21:51



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-429407-1-1.html




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

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