Bonjour,
j'ai un souci dans une fonction qui gere les soustraction infinis je gere 12-4 mais pas 120-4 par exemple , je pense qui manqu pas grd chose

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
char    *do_sub(char *n1, char *n2, t_base *base)
{
  char          *result;
  unsigned int  i;
  int           retenu;
  int           retenutmp;
  int           val;
 
  n1 = my_revstr(n1);
  n2 = my_revstr(n2);
  retenu = 0;
  retenutmp = 0;
  i = 0;
  result = malloc(sizeof(*result) * (BIGEST(my_strlen(n1), my_strlen(n2)) + 1));
 
  while (i < my_strlen(n1) || i < my_strlen(n2))
    {
      if (i < my_strlen(n2))
        {
          retenu = DIF(convb(n1[i], base->base), (convb(n2[i], base->base) - retenutmp));
          val = (convb(n1[i], base->base) + (retenu * base->size)) - (convb(n2[i], base->base) + retenutmp * base->size);
        }
      else
        {
          retenu = DIF(convb(n1[i], base->base), retenutmp);
          val = (convb(n1[i], base->base) + (retenu * base->size)) - retenutmp * base->size;
        }
      retenutmp = retenu;
      result[i++] = base->base[val % base->size];
    }
  if (retenu)
    {
    result[i++] = base->base[retenu * base->size];
    }
  result[i] = '\0';
  result = my_revstr(result);
  return (result);
}