题目要求:实现多项式的运算,输入两个多项式,相加后保存在一个新的多项式里,能看就看看吧,勿喷啊../* Note:Your choice is C IDE */
#include "stdio.h"
#define LEN sizeof(polyNode)
struct polyNode
{
double coef; //系数
int exp; //指数
struct polyNode *next; //指向下一项的指针
};
struct polyNode *polyPointer;
polyPointer *Attach(int c,int e,polyPointer *d)
{
polyPointer *x=(polyNode*)malloc(LEN);
x->coef=c;
x->exp=e;
d->next=x;
return x;
}
ployPointer *PolyAdd(polyPointer a,polyPointer b)
{
polyPointer *p,*q,*d,*c;
int x;
p=a;
q=b;
c=(ployNode)malloc(LEN);
d=c; //初始化
while((p!=NULL)&&(q!=NULL))
char Compare(int p->exp,int q->exp)
{
if(p->exp=q->exp)
return '=';
else if(p->exp>q->exp)
return '>';
else if(p->exp<q->exp)
return '<';
}
switch(Compare(p->exp,q->exp))
{
case '=':
x=p->coef+q->coef; //系数相加
if(x!=0)
d=Attach(x,p->exp,d); //将新结点链入
p=p->next;
q=q->next;//各前进一步
break;
case '>':
d=Attach(p->coef,p->exp,d)
//复制p所指向的结点并链入C中
p=p->next; //p前进一步
break;
case '<'
d=Attach(q->coef,q->exp,d);
//复制q所指向的结点并链入c中
q=q->next; //q前进一步
break;
}
while(p!=NULL) //复制p的剩余部分
{
d=Attach(p->coef,p->exp,d);
p=p->next;
}
while(q!=NULL)
{
d=Attach(q->coef,q->exp,d); //复制q的剩余部分
q=q->next;
}
d->next=NULL; //最后结点
//删除临时用结点
p=c;
c=c->link;
delete p;
reutrn c;
}void main()
{
int a,b,c,d;
ployNode new_1,new_2,*temp_1,*temp_2,*temp_3;
printf("%s\n","请输入一组多项式:");
scanf("%d %d",&a,&b);
scanf("%d %d",&c,&d);
*temp_1=Attach(a,b,new_1);
*temp_2=Attach(c,d,new_2);
temp_3=ployPointer(temp_1,temp_2);
printf("计算结果为:%d,%d",temp_2->coef,temp_3->exp);
}
#include "stdio.h"
#define LEN sizeof(polyNode)
struct polyNode
{
double coef; //系数
int exp; //指数
struct polyNode *next; //指向下一项的指针
};
struct polyNode *polyPointer;
polyPointer *Attach(int c,int e,polyPointer *d)
{
polyPointer *x=(polyNode*)malloc(LEN);
x->coef=c;
x->exp=e;
d->next=x;
return x;
}
ployPointer *PolyAdd(polyPointer a,polyPointer b)
{
polyPointer *p,*q,*d,*c;
int x;
p=a;
q=b;
c=(ployNode)malloc(LEN);
d=c; //初始化
while((p!=NULL)&&(q!=NULL))
char Compare(int p->exp,int q->exp)
{
if(p->exp=q->exp)
return '=';
else if(p->exp>q->exp)
return '>';
else if(p->exp<q->exp)
return '<';
}
switch(Compare(p->exp,q->exp))
{
case '=':
x=p->coef+q->coef; //系数相加
if(x!=0)
d=Attach(x,p->exp,d); //将新结点链入
p=p->next;
q=q->next;//各前进一步
break;
case '>':
d=Attach(p->coef,p->exp,d)
//复制p所指向的结点并链入C中
p=p->next; //p前进一步
break;
case '<'
d=Attach(q->coef,q->exp,d);
//复制q所指向的结点并链入c中
q=q->next; //q前进一步
break;
}
while(p!=NULL) //复制p的剩余部分
{
d=Attach(p->coef,p->exp,d);
p=p->next;
}
while(q!=NULL)
{
d=Attach(q->coef,q->exp,d); //复制q的剩余部分
q=q->next;
}
d->next=NULL; //最后结点
//删除临时用结点
p=c;
c=c->link;
delete p;
reutrn c;
}void main()
{
int a,b,c,d;
ployNode new_1,new_2,*temp_1,*temp_2,*temp_3;
printf("%s\n","请输入一组多项式:");
scanf("%d %d",&a,&b);
scanf("%d %d",&c,&d);
*temp_1=Attach(a,b,new_1);
*temp_2=Attach(c,d,new_2);
temp_3=ployPointer(temp_1,temp_2);
printf("计算结果为:%d,%d",temp_2->coef,temp_3->exp);
}
解决方案 »
- 关于内部类的一个小问题
- 请问一个页面正则表达式
- struts的模板如何理解和使用??
- Applet是怎么打开的
- 关于java的析构器问题,请教大家!
- 请高手指点菜鸟!!
- 高手进来解释一下 谢了
- 怎样在textarea或者jtextarea的里面添加图片,即image成员?
- 在JAVA中如何传递一个数组变量作为参数,代码如下!
- 你们一般的*.java文件用什么编译成*.class?也就是java开发工具是什么呢?
- jdk-6u35-linux-i586.bin 怎么处理java.lang.NoClassDefFoundError
- 紧急~~ java 符号的含义~!!! int value |= (1 << 8);
return get out of java!
}