您的位置:主页 > 博狗体育 >

博狗体育 C言语完成壹元多项式的加以减运算

2018-09-23作者:织梦猫来源:admin次阅读

  #include

  #include

  #include

  struct Node

  {

  float coef;//系数

  int expo;//指数

  };

  struct Polynomial

  {

  struct Node element;

  struct Polynomial *next;

  };

  typedef struct Polynomial Polynomial;

  typedef struct Polynomial *PLink;

  typedef PLink Polynode;//为了己己己写着便宜的壹系列坑爹货

  void initial(Polynode p)//初始募化链表

  {

  Polynode p1;

  p1=p;

  while(p1)

  {

  p1->next=NULL;

  p1=p1->next;

  }

  p=p1;

  }

  int judgeSame(Polynode p1,Polynode p2)//判佩两项中的指数能否相当

  {

  Polynode p;

  p=p1->next;

  while(p!=NULL && p->element.expo !=p2->element.expo)

  p=p->next;

  if(p==NULL)

  return 0;

  return 1;//指数相反前往1,不然前往0

  }

  void createPolynomial(Polynode p)//确立链表贮放多项式

  {

  int i=0,n=0;

  Polynode p2,setPo;

  if(p!=NULL)

  {

  initial(p); //初始募化

  }

  printf("请输入要创立的项数:");

  scanf("%d",&n);

  for(i=1;i<=n;i++)

  {

  setPo=(Polynode)malloc(sizeof(Polynomial));

  initial(setPo);

  printf("请输入第%d项的指数:",i);

  scanf("%d",&setPo->element.expo);

  if(setPo->element.expo<0)//指数为正数时提示错误

  {

  printf("你的输入拥有误,指数不能为正数,请重行输入!\n");

  scanf("%d",&setPo->element.expo);

  }

  printf("请输入第%d项的系数:",i);

  scanf("%f",&setPo->element.coef);

  while(p->next!=NULL && p->next->element.expo > setPo->element.expo)

  p=p->next;

  p2=p->next;

  if(!judgeSame(p,setPo))//判佩新输入的项能否曾经存放在

  {

  p->next=setPo;

  setPo->next=p2;

  }

  else

  {

  printf("您输入的多项曾经存放在,请重行输入!\n");

  createPolynomial(p);

  break;

  }

  }

  }

  void Output(Polynode p)//输入加以法运算后的链表

  {

  p=p->next;

  while(p!=NULL)

  {

  printf("%.1fX^%d",p->element.coef,p->element.expo);

  p=p->next;

编辑: 关键词:

随机推荐

图文聚集

热门排行

最新文章