Pat(A) 1002
来源:互联网 发布:mysql数据库笔试题 编辑:程序博客网 时间:2024/05/16 06:21
注意,两个多项式相加系数为零的项不能输出,也不能算在项数里面
一开始看错题,以为是n个多项式相加,这个程序也可以方便的改成n个相加
#include<stdio.h>#include<stdlib.h>#include<math.h>struct polynomial{double c;int n;struct polynomial *next;};struct polynomial *ploynomialadd(struct polynomial *p,struct polynomial *q){struct polynomial *sum,*head,*tail;head = tail = NULL;head = (struct polynomial*)malloc(sizeof(struct polynomial));head->next = NULL;head->n = 0;p = p->next;q = q->next;while(p!=NULL&&q!=NULL){sum = (struct polynomial *)malloc(sizeof(struct polynomial));sum->next = NULL;if(p->n == q->n) {if(fabs(p->c + q->c)<0.00001){p = p->next;q = q->next;continue;} else{sum->n = p->n;sum->c = p->c + q->c;p = p->next;q = q->next;}}else if(p->n > q->n){sum->n = p->n;sum->c = p->c;p = p->next;}else {sum->n = q->n;sum->c = q->c;q = q->next;}if(head->next == NULL)head->next = sum;else tail->next = sum;tail = sum;head->n++;}while(p!= NULL) { if(head->next == NULL)head->next = p;else tail->next = p;tail = p;head->n++; p = p->next; }while(q!= NULL){if(head->next == NULL)head->next = q;else tail->next = q;tail = q;head->n++; q = q->next;}return head;}int main(){struct polynomial *p1,*p2,*head,*tail;int k,n,sum,i;double an;p1 = p2 = NULL;p2 = (struct polynomial*)malloc(sizeof(struct polynomial));p2->next = NULL;p2->n = 0; for(i = 0;i<=1;i++){scanf("%d",&k);tail = head = NULL;head = (struct polynomial*)malloc(sizeof(struct polynomial));head->next = NULL;while(k--){scanf("%d%lf",&n,&an);if(fabs(an - 0.000) <= 0.00001)continue;p1 = (struct polynomial*)malloc(sizeof(struct polynomial));if(p1 == NULL){printf("Out of Space\n");return 0;}p1->n = n;p1->c = an;p1->next = NULL;if(head->next == NULL){head->next = p1;head->n = k+1;}else tail->next = p1;tail = p1;}p2 = ploynomialadd(head,p2);}sum = p2->n;printf("%d",p2->n);for(i = 0,p2 = p2->next;i<sum;i++,p2 = p2->next)printf(" %d %.1lf",p2->n,p2->c);printf("\n");}
0 0
- Pat(A) 1002
- Pat A 1002
- PAT(A)1002
- PAT甲级1002 A + B
- pat 1002 A+B for Polynomials
- PAT 1002 A+B for Polynomials
- pat 1002 A+B for Polynomials
- PAT 1002 A+B for Polynomials
- PAT 1002 A+B for Polynomials
- PAT-甲级-1002 A+B for Polynomials
- PAT 1002 A+B for Polynomials (25)
- PAT A A+B Format
- pat: 1016 A+B
- PAT [A] 1054
- PAT(A) 1005
- PAT(A) 1006
- PAT(A) 1007
- PAT(A) 1008
- 不传递地址,改变外界变量的值
- 【Java】java学习笔记:【从网络获取图像资源】实现
- 数字证书原理
- Direct3D 11在windows7上提示创建d3d设备失败
- 笔记3~6
- Pat(A) 1002
- PAT 1015. Reversible Primes (20)
- 【Java】【FAQ】Java JDBC连接SQL Server2005错误:通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败
- 【Java】【FAQ】Java连接SQL Server 2000问题:“com.microsoft.sqlserver.jdbc.SQLServerException:用户'sa'登录失败。
- 一窥CAD及国产CAD的发展路程
- 【Java】【FAQ】控制台执行带自定义包定义的类,出现“Exception in thread "main" java.lang.NoClassDefFoundError
- Netty使用初步
- spoj 705
- NDIS函数简明手册