Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- //By FamiHug
- typedef struct pcdt
- {
- int info;
- struct pcdt *link;
- }dslk;
- dslk* dathuc(int,int);
- dslk* init_dslk(int);
- int main()
- {
- dslk *p1,*p2,*p0,*l0,*l1,*l2;
- int min=0,max=0,n1=0,n2=0,i=0;
- printf("CHUONG TRINH CONG 2 DA THUC\n");
- printf("===========================\n\n");
- printf("Nhap bac cua da thuc 1: ");
- scanf("%d",&n1);
- printf("Nhap bac cua da thuc 2: ");
- scanf("%d",&n2);
- p1=dathuc(1,n1);//p1 tro den dau dslk1
- p2=dathuc(2,n2);//p2 tro den dau dslk2
- l1=p1;//l1,l2 tro co dinh den dau dslk1,2
- l2=p2;
- max=n1>=n2?n1:n2;//tim xem da thuc nao co bac cao hon
- min=n1<=n2?n1:n2;
- p0=init_dslk(max);
- l0=p0;
- p1=l1;
- p2=l2;
- //Nhap info cho dslk chua tong
- for(i=1;i<=max+1;i++)
- {
- if(max==n1)
- {
- p0->info=p1->info;
- p0=p0->link;
- p1=p1->link;
- }
- else
- {
- p0->info=p2->info;
- p0=p0->link;
- p2=p2->link;
- }
- }
- printf("\n");
- p2=l2;p1=l1;p0=l0;
- //Tinh ket qua ghi vao ds p0
- for(i=1;i<=min+1;i++)
- {
- if(max==n1){
- p0->info=p0->info+p2->info;
- p0=p0->link;
- p2=p2->link;
- }
- else{
- p0->info=p0->info+p1->info;
- p0=p0->link;
- p1=p1->link;}
- }
- p0=l0;
- //Dao nguoc thu tu roi printf
- dslk *m,*p;
- m=NULL;
- for(i=1;i<=max+1;i++)
- {
- p=(dslk*)malloc(sizeof(dslk));
- p->info=p0->info;
- if(m==NULL)
- {
- p->link=NULL;
- m=p;
- }
- else
- {
- p->link=m;
- m=p;
- }
- p0=p0->link;
- }
- printf("Cac he so cua tong hai da thuc la: ");
- for(i=1;i<=max+1;i++)
- {
- printf("%3d",p->info);
- p=p->link;
- }
- return 1;}
- //Function dathuc ->Nhap tu cuoi len dau ds
- dslk* dathuc(int c,int n)
- {
- dslk *m,*p;
- m=NULL;
- int i;
- for(i=1;i<=n+1;i++)
- {
- p=(dslk*)malloc(sizeof(dslk));
- printf("Nhap he so thu %d cua dt%d: ",i,c);
- scanf("%d",&p->info);
- if(m==NULL)
- {
- p->link=NULL;
- m=p;
- }
- else
- {
- p->link=m;
- m=p;
- }
- }
- return p;
- }
- //Function init_dslk chi tao bien dong, khong gan gia tri
- dslk* init_dslk(int n)
- {
- dslk *m,*p;
- m=NULL;
- int i;
- for(i=1;i<=n+1;i++)
- {
- p=(dslk*)malloc(sizeof(dslk));
- if(m==NULL)
- {
- p->link=NULL;
- m=p;
- }
- else
- {
- p->link=m;
- m=p;
- }
- }
- return p;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement