⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1.5.txt

📁 一元稀疏多项式简单计算器
💻 TXT
字号:
 #include "stdlib.h"
#include "stdio.h"

typedef struct Node 
{
    int zhi;
    int xi;
    struct Node *next;
}Node;


void creatpolyn(Node *head)//依次输入系数和指数,直到最后输入的系数为0,(注意输入的指数由小到大)
{
    Node *p,*q;
    int x,z;
    if(head)
    {
        p=head;
        scanf("%d",&x);
        while(x!=0)
        {
            q=(Node *)malloc(sizeof(Node));
            q->xi=x;
            scanf("%d",&z);
            q->zhi=z;
            p->next=q;
            p=q;
            scanf("%d",&x);
        }
        p->next=NULL;
    }
    else
        exit(1);
}

void addpolyn(Node *la,Node *lb)//完成多项式相加运算,结果存在la中
{
    Node *p,*q,*prior_p,*temp;;//prior_p是p的前驱
    if(la&&lb)
    {
        q=lb->next;
        while(q!=NULL)
        {
            prior_p=la;
            p=la->next;
            while(p!=NULL)
            {
                if(q->zhi==p->zhi)
                {
                    if(p->xi+q->xi==0)
                    {
                        prior_p->next=p->next;
                        q=q->next;
                    }
                    else
                    {    
                        p->xi=p->xi+q->xi;
                        q=q->next;
                    }
                    break;
                }
                else if(q->zhi<p->zhi)
                {
                    temp=q->next;
                    prior_p->next=q;//
                    q->next=p;
                    q=temp;
                    break;
                }
                else
                {
                    p=p->next;
                    prior_p=prior_p->next;
                }
                if(p==NULL)
                    p=p->next;
            }
        }
    }
    else
        exit(1);
}


void printpolyn(Node *head)//打印输出一元多项式
{
    Node *p;
    if(head)
    {
        p=head->next;
        while(p->next!=NULL)
        {
            printf("%d",p->xi);
            printf("x^%d",p->zhi);
            printf("+");
            p=p->next;
        }
        printf("%d",p->xi);
        printf("x^%d",p->zhi);
    }
    else
        exit(1);
}







void main()
{
    Node *la,*lb;
    la=(Node *)malloc(sizeof(Node));
    lb=(Node *)malloc(sizeof(Node));
    printf("输入多项式la:");
    creatpolyn(la);
    printf("输入多项式lb:");
    creatpolyn(lb);
    printpolyn(la);
    printf("\n");
    printpolyn(lb);
    addpolyn(la,lb);
    printf("\n");
    printpolyn(la);
}

 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -