Guest User

Untitled

a guest
May 22nd, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.88 KB | None | 0 0
  1. // voici mon code:
  2. Poly tidy_poly (Poly p1)
  3. {
  4.     Poly nouveau_poly,poly_partiel;
  5.  
  6.     nouveau_poly = malloc(sizeof(struct p_data));
  7.     nouveau_poly->red = p1 ;
  8.  
  9.     poly_partiel= malloc(sizeof(struct p_data));
  10.     poly_partiel = p1 ;
  11.  
  12.     while (p1 != NULL)
  13.     {
  14.         if (p1->red != NULL)
  15.         {
  16.             if ( p1->deg > (p1->red)->deg )
  17.             {
  18.                 print_poly(p1);
  19.                 p1->red = malloc(sizeof(struct p_data));
  20.                 p1 = p1->red ;
  21.  
  22.  
  23.             }
  24.  
  25.             else if (p1->deg < (p1->red)->deg)
  26.             {
  27.                 print_poly(p1);
  28.                 Poly tmp ;
  29.                 tmp = malloc(sizeof(struct p_data));
  30.  
  31.                 tmp->deg = p1->deg ;
  32.                 tmp->coef = p1->coef ;
  33.  
  34.                 p1->deg = (p1->red)->deg ;
  35.                 p1->coef = (p1->red)->coef ;
  36.  
  37.                 p1 = p1->red;
  38.                 p1->deg  = tmp->deg ;
  39.                 p1->coef = tmp->coef ;
  40.             }
  41.             else
  42.             {
  43.  
  44.                 if (p1 != NULL )
  45.                 {
  46.  
  47.                     p1->coef = base_add(p1->coef , (p1->red)->coef);
  48.  
  49.                     if (p1->red->red != NULL)
  50.                     {
  51.                         printf ("blaaa");
  52.  
  53.                         Poly tmp2;
  54.                         tmp2=p1 ;
  55.                         tmp2->red = NULL ;
  56.                         p1= (p1->red)->red ;
  57.                         if (p1->deg >= inf_deg (p1))
  58.                         {
  59.  
  60.                             Poly poly_stocke ;
  61.                             int degre_stocke;
  62.                             Field coeff_stocke ;
  63.  
  64.                             degre_stocke = p1->deg ;
  65.                             coeff_stocke = p1->coef ;
  66.  
  67.                             p1 = tmp2 ;
  68.  
  69.                             poly_stocke->deg = degre_stocke;
  70.                             poly_stocke->coef = coeff_stocke;
  71.                             poly_stocke = malloc (sizeof(struct p_data)) ;
  72.                             poly_stocke->red = tmp2 ;
  73.                             tidy_poly(poly_stocke);
  74.                         }
  75.                     }
  76.                     else
  77.                     {   printf ("blaaaa");
  78.                         p1->red = NULL ;
  79.                         p1= p1->red;
  80.                     }
  81.                 }
  82.             }
  83.  
  84.         }
  85.         else if (p1 !=NULL)
  86.         {
  87.  
  88.             if (p1->deg > inf_deg (nouveau_poly))
  89.             {
  90.                 printf ("blaqqqq");
  91.                 Poly tmp2;
  92.                 tmp2=p1 ;
  93.                 tmp2->red = NULL ;
  94.  
  95.                 Poly poly_stocke ;
  96.                 int degre_stocke;
  97.                 Field coeff_stocke ;
  98.  
  99.                 degre_stocke = p1->deg ;
  100.                 coeff_stocke = p1->coef ;
  101.  
  102.                 p1 = tmp2 ;
  103.  
  104.                 poly_stocke->deg = degre_stocke;
  105.                 poly_stocke->coef = coeff_stocke;
  106.                 poly_stocke = malloc (sizeof(struct p_data)) ;
  107.                 poly_stocke->red = tmp2 ;
  108.                 tidy_poly(poly_stocke);
  109.             }
  110.             else
  111.             {
  112.                 print_poly(p1);
  113.                 p1=p1->red;
  114.             }
  115.         }
  116.     }
  117.  
  118.     return (nouveau_poly) ;
  119. }
  120.  
  121.  
  122.  
  123. // Je le teste avec p1= 1X^2 + 1X^3 + 1X^0
  124. // et je veux qu'il me retourne p1 = 1X^3 + 1X^2 + 1X^0
  125. // j'ai mis des printf et des print_poly un peu partout pour savoir ou il en est et ce qu'il fait .
  126. // il me retourne p1 = 1X^3 + 1X^2 (mais sans 1X^0)
  127. // Il passe d'abord dans la boucle else if (p1->deg < (p1->red)->deg) (normal)
  128. //puis dans la boucle du debut:  if ( p1->deg > (p1->red)->deg ) (normal)
  129. // a ce stade, p1 est placé sur 1X^0
  130. // il se rend donc tout en bas
  131. //   else
  132.             {
  133.                 print_poly(p1);
  134.                 p1=p1->red;
  135.             }
  136. // mais il ne m'affiche pas print_poly et apparement il quitte la boucle sans compter X^0
Add Comment
Please, Sign In to add comment