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

📄 多项式.c.txt

📁 能够按照指数降序排列建立并输出多项式;能够完成两个多项式的相加、相减
💻 TXT
字号:
#include<stdio.h>  
 #include<conio.h>   
#include<malloc.h>
typedef struct node
{float coef;  int exp;
struct node *next;
 }linknode,*link;
void Insert(link head,link s)
{link pre=NULL,p=NULL;
 pre=head;     p=pre->next;
while(p!=NULL)
 {if(p->exp>s->exp)break;
  pre=p;   p=p->next;
 }
 s->next=p;    pre->next=s;
}
link CreatPoly()
{link head=NULL,s=NULL;
 float co;
 int last=-1,ex,flag=0;
 head=(link)malloc(sizeof(linknode));
 head->next=NULL;
 do
 {printf("\n Please input coef(end up with 0):");
  scanf("%f",&co);
  if(co==0)flag=1;
  if(flag==0)
  {printf("Please input exp:");
   scanf("%d",&ex);
   if(ex<=last)continue;
   last=ex;
   s=(link)malloc(sizeof(linknode));
   s->coef=co;s->exp=ex;
   Insert(head,s);
   }
  }while(flag==0);
  return(head);
 }
void AddPoly(link pa,link pb)
{link pc,pre,u;   float sum;
pc=pa;pre=pa;  pa=pa->next;
u=pb;       pb=pb->next;
free(u);
 while(pa&&pb)
 { if(pa->exp<pb->exp)
  {
      pre=pa;
      pa=pa->next;
     }
     else  if(pa->exp>pb->exp)
     {
           u=pb->next;
     pb->next=pa;pre->next=pb;
     pre=pb;pb=u}  else
    {  sum=pa->coef+pb->coef;
     if(sum!=0.0)
       {pa->coef=sum;pre=pa;}
     else
        {pre->next=pa->next;free(pa);}
     pa=pre->next;
     u=pb;     pb=pb->next;
 free(u);
     }
     }
     if(pb)pre->next=pb;
     }
void Display(link head)
{ link p=NULL;
  p=head->next;
  while(p!=NULL)
  { if(p->exp==0)printf("%g+",p->coef,p->exp);
    else printf("%gX^%d+",p->coef,p->exp);
    p=p->next;
  }
  if(head->next==NULL)printf("0");
  else printf("\b");
 }
void main(){ link pa=NULL,pb=NULL;
  printf("Please input ploy a:");
  pa=CreatPoly();
  printf("Please input ploy b:");
  pb=CreatPoly();
  printf("\n Pa=");     Display(pa);printf("\n Pb=");
  Display(pb);
  AddPoly(pa,pb);
  printf("\n Pc=");
  Display(pa); getch();
 }

⌨️ 快捷键说明

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