SHARE
TWEET

CongDaThuc_dsL_FamiHug

a guest Nov 23rd, 2010 118 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. //By FamiHug
  4. typedef struct pcdt
  5.         {
  6.                 int info;
  7.                 struct pcdt *link;
  8.         }dslk;
  9.  
  10. dslk* dathuc(int,int);
  11. dslk* init_dslk(int);
  12.  
  13. int main()
  14. {
  15.         dslk *p1,*p2,*p0,*l0,*l1,*l2;
  16.         int min=0,max=0,n1=0,n2=0,i=0;
  17.         printf("CHUONG TRINH CONG 2 DA THUC\n");
  18.         printf("===========================\n\n");
  19.         printf("Nhap bac cua da thuc 1: ");
  20.         scanf("%d",&n1);
  21.         printf("Nhap bac cua da thuc 2: ");
  22.         scanf("%d",&n2);
  23.         p1=dathuc(1,n1);//p1 tro den dau dslk1
  24.         p2=dathuc(2,n2);//p2 tro den dau dslk2
  25.         l1=p1;//l1,l2 tro co dinh den dau dslk1,2
  26.         l2=p2;
  27.         max=n1>=n2?n1:n2;//tim xem da thuc nao co bac cao hon
  28.         min=n1<=n2?n1:n2;
  29.        
  30.         p0=init_dslk(max);
  31.         l0=p0;
  32.         p1=l1;
  33.         p2=l2;
  34.  
  35.         //Nhap info cho dslk chua tong
  36.     for(i=1;i<=max+1;i++)
  37.     {
  38.         if(max==n1)
  39.         {
  40.             p0->info=p1->info;
  41.             p0=p0->link;
  42.             p1=p1->link;
  43.                 }
  44.                 else
  45.                 {
  46.                         p0->info=p2->info;
  47.                         p0=p0->link;
  48.                         p2=p2->link;
  49.                 }
  50.                 }
  51.  
  52.         printf("\n");
  53.         p2=l2;p1=l1;p0=l0;
  54.        
  55.     //Tinh ket qua ghi vao ds p0
  56.         for(i=1;i<=min+1;i++)
  57.         {
  58.                 if(max==n1){
  59.                 p0->info=p0->info+p2->info;
  60.                 p0=p0->link;
  61.                 p2=p2->link;
  62.                 }
  63.                 else{
  64.                 p0->info=p0->info+p1->info;
  65.                 p0=p0->link;
  66.                 p1=p1->link;}
  67.         }
  68.         p0=l0;
  69.  
  70.         //Dao nguoc thu tu roi printf
  71.         dslk *m,*p;
  72.         m=NULL;
  73.         for(i=1;i<=max+1;i++)
  74.         {
  75.                 p=(dslk*)malloc(sizeof(dslk));
  76.                 p->info=p0->info;
  77.                 if(m==NULL)
  78.                 {
  79.                         p->link=NULL;
  80.                         m=p;
  81.                 }
  82.                 else
  83.                 {
  84.                         p->link=m;
  85.                         m=p;
  86.                 }
  87.                 p0=p0->link;
  88.         }
  89.         printf("Cac he so cua tong hai da thuc la: ");
  90.         for(i=1;i<=max+1;i++)
  91.         {
  92.                 printf("%3d",p->info);
  93.                 p=p->link;
  94. }
  95.  
  96.  
  97.         return 1;}
  98.  
  99.  
  100.  
  101. //Function dathuc ->Nhap tu cuoi len dau ds
  102. dslk* dathuc(int c,int n)
  103. {
  104.         dslk *m,*p;
  105.         m=NULL;
  106.         int i;
  107.         for(i=1;i<=n+1;i++)
  108.         {
  109.                 p=(dslk*)malloc(sizeof(dslk));
  110.  
  111.                 printf("Nhap he so thu %d cua dt%d: ",i,c);
  112.                 scanf("%d",&p->info);
  113.                 if(m==NULL)
  114.                 {
  115.                         p->link=NULL;
  116.                         m=p;
  117.                 }
  118.                 else
  119.                 {
  120.                         p->link=m;
  121.                         m=p;
  122.                 }
  123.         }
  124.         return p;
  125. }
  126. //Function init_dslk chi tao bien dong, khong gan gia tri
  127. dslk* init_dslk(int n)
  128. {
  129.         dslk *m,*p;
  130.         m=NULL;
  131.         int i;
  132.         for(i=1;i<=n+1;i++)
  133.         {
  134.                 p=(dslk*)malloc(sizeof(dslk));
  135.                 if(m==NULL)
  136.                 {
  137.                         p->link=NULL;
  138.                         m=p;
  139.                 }
  140.                 else
  141.                 {
  142.                         p->link=m;
  143.                         m=p;
  144.                 }
  145.         }
  146.         return p;
  147. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top