#include<iostream.h>
#include<stdio.h>
#include <stdlib.h>
typedef int ElemType;
typedef struct LNode
{
ElemType data;
struct LNode *next;
}Lnode,*Linklist;
void Create(Linklist &L,int m,int n)//一元多项式的创建
{
L=new Lnode;
L->next=NULL;
Linklist rear=L;//定义指向结构体的指针rear,并让它指向L
int a;
cout<<"请输入多项式各项以及各幂次的系数\n";
for(a=m;a<n+1;a++)
{
if(a==0) cout<<"常数项为:";
else cout<<a<<"次项系数为:";
Linklist s=new Lnode;
cin>>s->data;
rear->next=s;
rear=s;
}
rear->next=NULL;
}
void Qiudao(Linklist &L,int m,int n)//一元多项式的求导
{ int a=m,b=m;
Linklist s=L->next;//定义指向L的结构体指针p
if(!s) cout<<"你的一元多项式有误";
while(a<n+1)
{
s->data=s->data*a;
s=s->next;
a++;
}
Linklist p=L->next;
cout<<"一元多项式f的导数为:\n";
cout<<"f'=";
while(b<n+1)
{
if(b<0)
{
if(p->data>=0)
cout<<"+"<<p->data;
else
cout<<p->data;
for(int v=0;v<-b+1;v++)
cout<<"x"; //输出b+1个x,即输出多一的负幂次
cout<<"(负幂次)"; p=p->next; b++; continue;
}
if(b==0) {cout<<"+"<<p->data; p=p->next; b++; continue;}
else
{
if(p->data>0)
cout<<"+"<<p->data;
if(p->data<0)
cout<<"-"<<p->data;
for(int v=0;v<b-1;v++) cout<<"x";//输出b个x,即输出少一的幂次
p=p->next; b++; continue;
}
}
cout<<"\n"; }
void main()
{
int a,b;
Linklist K;
cout<<"请输入一元多项式的最低幂次:";
cin>>a;
cout<<"请输入一元多项式的最高幂次:";
cin>>b;
Create(K,a,b);
Qiudao(K,a,b);
}
一元多项式求导。/设计实验/
于 2018-06-25 09:07:55 首次发布