Bonjour, dans le cadre de mes études, je suis amené à créer ce petit programme qui, à partir d'un int, affiche un char. En révisant, je me suis apercue que mon programme était DÉGUELASSE, je l'ai donc refait, en passant par la récursive. Youpi, le programme ne tient plus qu'en une seule fonction et quelques lignes. Seulement, voilà le problème, le programme a une faille : lorsque je lui envoie -2 147 483 648, ce foutu prog me donne le résultat avec deux - : --2147483648.

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
 
void	putchar(char c)
{
  write(1, &c, 1);
}
 
void	put_nbr(int nb)
{
  int	nbr;
 
  if (nb > 0)
      nb = -nb;
  else
    putchar('-');
  nbr = nb % 10;
  putchar('n');
  if (nb < -9)
  	put_nbr(-nb / 10);
  putchar(-nbr + 48);
}
 
int	main()
{
  put_nbr(-2147483648);
  putchar('\n');
}
Une petite aide serait la bienvenue mais sans me donner la réponse s'il vous plaît ^^

En tout cas très beau travail de la part de vous tous et j'espère que j'aurais bientôt le niveau pour participer