Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<malloc.h>
- #include<conio.h>
- #include<stdlib.h>
- typedef struct dt{
- int heso;
- int somu;
- dt *Next;
- } dathuc;
- dathuc *ptam, *C;
- dathuc *in(dathuc *P,dathuc *pdau,char S)
- {
- int heso;
- int somu;
- printf("Nhap da thuc %c",S);
- do
- {
- printf("\nNhap so mu: ");
- scanf("%d",&somu);
- if(somu == 13)
- break;
- if(pdau==NULL)
- {
- P=(dathuc *) malloc(sizeof(dathuc));
- pdau=P;
- }
- else
- {
- P->Next=(dathuc *) malloc(sizeof(dathuc));
- P=P->Next;
- }
- P->somu = somu;
- printf("Nhap he so: ");
- scanf("%d",&heso);
- P->heso=heso;
- P->Next=NULL;
- }
- while (getch() != 0x1b);
- return pdau;
- }
- void out(dathuc *p,dathuc *pdau,char S)
- {
- p=pdau;
- printf("\n%c = ",S);
- do
- {
- if(p==pdau)
- {
- printf("%dx^%d",p->heso,p->somu);
- }
- else{
- if(p->heso <0 )
- printf("%d^%d",p->heso,p->somu);
- else
- printf("+%d^%d",p->heso,p->somu);
- }
- p=p->Next;
- }
- while(p!=NULL);
- }
- void attach(int H,int M)
- {
- dathuc *a;
- a = (dathuc*)malloc(sizeof(dathuc));
- a->heso = H;
- a->somu = M;
- if(C!=NULL){
- ptam->Next = a;
- }
- else
- C = a;
- ptam =a;
- }
- void add(dathuc *P,dathuc *pP,dathuc *Q,dathuc *pQ,dathuc *C)
- {
- P = pP;
- Q = pQ;
- while(P!=NULL && Q!=NULL)
- {
- if(P->somu == Q->somu)
- {
- int A = P->heso + Q->heso;
- attach(A,P->somu);
- P = P->Next;
- Q = Q->Next;
- }
- else{
- if(P->somu > Q->somu){
- attach(P->heso,P->somu);
- P = P->Next;
- }
- else{
- attach(Q->heso,Q->somu);
- Q = Q->Next;
- }
- }
- }
- }
- main()
- {
- int a,n;
- dathuc *P,*pdau_p,*Q,*pdau_q;
- pdau_p = in(P,NULL,'P');
- pdau_q = in(Q,NULL,'Q');
- out(P,pdau_p,'P');
- out(P,pdau_q,'Q');
- add(P,pdau_p,Q,pdau_q,C);
- //out(C,C,'C');
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement