Advertisement
greatbn

Cộng hai đa thức

Aug 29th, 2015
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.74 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<malloc.h>
  3. #include<conio.h>
  4. #include<stdlib.h>
  5. typedef struct dt{
  6.     int heso;
  7.     int somu;
  8.     dt *Next;  
  9. } dathuc;
  10. dathuc *ptam, *C;
  11. dathuc *in(dathuc *P,dathuc *pdau,char S)
  12. {
  13.     int heso;
  14.     int somu;
  15.     printf("Nhap da thuc %c",S);
  16.     do
  17.     {
  18.         printf("\nNhap so mu: ");
  19.         scanf("%d",&somu);
  20.         if(somu == 13)
  21.             break;     
  22.         if(pdau==NULL)
  23.         {
  24.             P=(dathuc *) malloc(sizeof(dathuc));
  25.             pdau=P;
  26.         }
  27.         else
  28.         {
  29.             P->Next=(dathuc *) malloc(sizeof(dathuc));
  30.             P=P->Next;
  31.         }
  32.         P->somu = somu;
  33.         printf("Nhap he so: ");
  34.         scanf("%d",&heso);
  35.         P->heso=heso;  
  36.         P->Next=NULL;
  37.     }
  38.     while (getch() != 0x1b);
  39.     return pdau;   
  40. }
  41. void out(dathuc *p,dathuc *pdau,char S)
  42. {
  43.     p=pdau;
  44.     printf("\n%c = ",S);
  45.     do
  46.     {
  47.         if(p==pdau)
  48.         {
  49.                 printf("%dx^%d",p->heso,p->somu);
  50.    
  51.         }
  52.         else{
  53.             if(p->heso <0 )
  54.                 printf("%d^%d",p->heso,p->somu);
  55.             else
  56.                 printf("+%d^%d",p->heso,p->somu);
  57.         }
  58.    
  59.             p=p->Next;
  60.     }
  61.     while(p!=NULL);
  62. }
  63. void attach(int H,int M)
  64. {
  65.     dathuc *a;
  66.     a = (dathuc*)malloc(sizeof(dathuc));
  67.     a->heso = H;
  68.     a->somu = M;
  69.     if(C!=NULL){
  70.         ptam->Next = a;
  71.     }
  72.     else
  73.         C = a;
  74.     ptam =a;
  75.    
  76. }
  77. void add(dathuc *P,dathuc *pP,dathuc *Q,dathuc *pQ,dathuc *C)
  78. {
  79.     P = pP;
  80.     Q = pQ;
  81.     while(P!=NULL && Q!=NULL)
  82.     {
  83.        
  84.         if(P->somu == Q->somu)
  85.         {
  86.             int A  = P->heso + Q->heso;
  87.             attach(A,P->somu);
  88.             P = P->Next;
  89.             Q = Q->Next;
  90.         }
  91.         else{
  92.             if(P->somu > Q->somu){
  93.                 attach(P->heso,P->somu);
  94.                 P = P->Next;
  95.             }
  96.             else{
  97.                 attach(Q->heso,Q->somu);
  98.                 Q = Q->Next;
  99.             }
  100.         }
  101.     }
  102. }
  103. main()
  104. {
  105.     int a,n;
  106.     dathuc *P,*pdau_p,*Q,*pdau_q;
  107.     pdau_p = in(P,NULL,'P');
  108.     pdau_q = in(Q,NULL,'Q');
  109.     out(P,pdau_p,'P');
  110.     out(P,pdau_q,'Q');
  111.     add(P,pdau_p,Q,pdau_q,C);
  112.     //out(C,C,'C');
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement