一元多项式的实现(C语言)

求程序大神帮忙解决一下数据结构的练习。要求:1)一元多项式的输入,显示输出(1)提示输入多项式系数和指数,输入之后把多项式按照常用形式显示出来(2)计算结果显示2)一元多... 求程序大神帮忙解决一下数据结构的练习。要求:1)一元多项式的输入,显示输出
(1)提示输入多项式系数和指数,输入之后把多项式按照常用形式显示出来
(2)计算结果显示
2)一元多项式加法,减法,乘法实现。
展开
 我来答
笨鸟爱糖果
2011-10-18 · TA获得超过175个赞
知道答主
回答量:26
采纳率:0%
帮助的人:40.2万
展开全部
#define TURE 1
#define FALSE 0
#include<stdio.h>
#include<stdlib.h>
typedef struct
{
float coef;
int e;
}ElementType;
typedef struct node
{
ElementType data;
struct node *next;//这也是为什么要定义struct node 而非struct的原因
}Lnode,*LinkList;

int Head_CreatLinkList (LinkList &L,int n,ElementType a[])//头插法建立链表
{
int i;
LinkList head,p;
L=(LinkList)malloc(sizeof(Lnode));
L->next=NULL;
head=L;
for(i=0;i<n;i++)
{
p=(LinkList)malloc(sizeof(Lnode));
p->next=NULL;
p->data.coef=a[i].coef;
p->data.e=a[i].e;
head->next=p;
head=p;
}
return TURE;
}
int GetElement(LinkList L)
{
int m;
m=L->data.e;
//printf("%d",m);
return m;
}
int Comp(int a,int b )
{
if(a>b)
return 1;
else if(a<b)
return -1;
else
return 0;
}
int Union_LinkList(LinkList &L1,LinkList &L2,LinkList &L3)
{
LinkList p1,p2,p3,flag1,flag2;//flag标记指针,用于删除L2中节点
p1=L1->next;
p2=L2->next;
L3=p3=L1;//L3改变将导致L1的改变,即最终L3和L1相同
while(p1&&p2)
{
switch(Comp(GetElement( p1),GetElement( p2)))
{
case -1:
{
p3->next=p1;
p3=p1;
p1=p1->next;
break;
}
case 1:
{
p3->next=p2;
p3=p2;
p2=p2->next;
break;
}
case 0:
{
p1->data.coef=p1->data.coef+p2->data.coef;
if(p1->data.coef==0)
{
flag1=p1;
p1=p1->next;
free(flag1);
}
flag2=p2;
p2=p2->next;
free(flag2);
break;
}
}
}
p3->next=p1?p1:p2;
free(L2);
return TURE;
}

int Display_LinkList(LinkList L)
{
LinkList p;
p=L;
if(!p)
return FALSE;

while(p->next)
{
p=p->next;
printf("[%f%, %d]\t",p->data.coef,p->data.e);
}
printf("\n");
return TURE;

}

void main()
{
LinkList a,b,c;
ElementType a1[6]={{1,1},{2,7},{3,3},{4,4},{5,9},{1,10}};
ElementType a2[4]={{-1,1},{2,7},{3,8},{-5,9}};
Head_CreatLinkList (a,6,a1);
Head_CreatLinkList (b,4,a2);

Display_LinkList(a);
Display_LinkList(b);
Union_LinkList(a,b,c);
Display_LinkList(c);

}
这是自己以前写的一个多项式加法的程序,现在也没检查了,希望你自己好好调试一下,至于减法和除法,只要加一点吧。希望对你有帮助
更多追问追答
追问
好多错误啊,能不能改一下给我?
追答
请问一下是哪里的错误?编译错误还是什么?刚刚我运行了一下,没有错误呀,我这个程序是直接自己设置了输入,而不是手动输入,你自己可以改一下
ElementType a1[6]={{1,1},{2,7},{3,3},{4,4},{5,9},{1,10}};
ElementType a2[4]={{-1,1},{2,7},{3,8},{-5,9}};
这两句表示1x^1+2x^7+3x^3+4X^4+5x^9+1x^10
-1x^1+2x^7+3x^8+4X^4-5x^9
这两个表达式相减得到了4x^7+3x^3+4X^4+3x^8+1x^10
是正确结果啊,请问楼主的错误在哪里一
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式