#include <stdio.h>
struct space create();
void print(struct space *p);
struct space mul(struct space *p1,struct space *p2);
struct space add(struct space *p1,struct space *p2);
void attach(int c,int e,struct space *L2);
struct space{
int xishu;
int zhishu;
struct space *next;
};
int main(){
struct space p1;
struct space p2;
struct space p3;
struct space p4;
p1 = create();
p2 = create();
p3 = mul(p1,p2);
p4 = add(p1,p2);
print(p3);
print(p4);
return 0;
}
struct space create(){ //创建链表
int n,i;
scanf("%d",&n);
struct space L,front;
L=(struct space)malloc(sizeof(struct space));
front=L;
L=L->next;
for(i=0;i<n;i++){
L=(struct space)malloc(sizeof(struct space));
scanf("%d %d",&L->xishu,&L->zhishu);
L=L->next;
}
L->next=NULL;
return front;
}
struct space mul(struct space *p1,struct space *p2){ //两个多项式相乘
struct space L,frontl,middle;
L=(struct space)malloc(sizeof(struct space));
L->next=NULL;
frontl=L;
p1=p1->next;
p2=p2->next;
middle1=p1;
for(;middle1;middle1=middle1->next){
middle2=p2;
for(;middle2;middle2=middle2->next){
L=(struct space)malloc(sizeof(struct space));
L->xishu=(middle1->xishu)+(middle2->xishu);
L->zhishu=(middle1->zhishu)*(middle2->zhishu);
L=L->next;
}
}
L->next = NULL;
return front1;
}
struct space add(struct space p1,struct space p2){ //两个多项式相加
struct space L2,front2;
L2=(struct space)malloc(sizeof(struct space));
L2->next=NULL;
front2=L2;
p1=p1->next;
p2=p2->next;
while(p1&&p2){
if(p1->zhishu>p2->zhishu){
attach(p1->xishu,p1->zhishu,&L2);
p1=p1->next;
}else if(p2->zhishu>p2->zhishu){
attach(p2->xishu,p2->zhishu,&L2);
p2=p2->next;
}else{
if(p2->xishu+p1->xishu){
;
}else{
attach(p1->xishu+p2->xishu,p1->zhishu,&L2);
p2=p2->next;
p1=p1->next;
}
}
}
L2->next=p1?p1:p2;
return front2;
}
void attach(int c,int e,struct space *L2){ //将系数、指数插到新链表里
struct space p;
p=(struct space)malloc(sizeof(struct space));
p->xishu=c;
p->zhishu=e;
(*L2)->next=p;
(*L2)=p;
}
void print(struct space *p){ //打印
p=p->next;
while(p){
printf("%d %d",p->xishu,p->zhishu);
if(p->next){
printf(" ");
}
p=p->next;
}
}
有人能帮我找下bug吗,我真的改不对了,看了一天了
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- orange4reg 2021-10-19 07:11关注
其它问题我不知道。但是那个结构定义,都跟你说了,在哪里用到的前面就要有声明,听不听由你了。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
- ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
- ¥15 乘性高斯噪声在深度学习网络中的应用
- ¥15 运筹学排序问题中的在线排序
- ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
- ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
- ¥15 C++ 头文件/宏冲突问题解决
- ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
- ¥50 安卓adb backup备份子用户应用数据失败
- ¥20 有人能用聚类分析帮我分析一下文本内容嘛