/*Fichiers à Rendre: ft_putnbr.c
Autorisé: write
• Écrivez une fonction qui affiche le nombre passé en paramètre. La fonction doit pouvoir
afficher toutes les valeurs possibles d’une variable de type int.
Prototype :
void ft_putnbr(int nb);
• Par exemple :
ft_putnbr(42) affiche :
?> ./a.out
42*/
#include <unistd.h>
void ft_putchar(char c)
{
write(1, &c, 1);
}
void ft_putnbr(int nb)
{
//char premier;
//char second;
//premier = (nb / 10) + '0';
//second = (nb % 10) + '0';
// traite le pire des cas
if (nb == -2147483648)
{
write(1, "-2147483648", 11);
return ;
}
// gerer les cas de nbr negatif
if(nb < 0)
{
ft_putchar('-');
nb = nb * -1;
}
/*if(nb >= 0 && nb < 10)
{
ft_putchar(nb + '0');
}
else
{
ft_putnbr(nb / 10);
ft_putnbr(nb % 10);
}*/
if (nb >= 10)
{
ft_putnbr(nb / 10);
}
ft_putchar(nb % 10 + '0');
/*if(nb / 10 >= 10)
{
// on traite les nombres au dessus de 10
// en les renvoyant dans la fonction ft_putnbr
// tant qu'il seront > 10 ca permet de traiter
// tous les nombres positifs
ft_putnbr(nb / 10); // donne 42
ft_putnbr(nb % 10 * 1); // donne 05 au lieu de 5 meme * 1 ne fonctionne pas
// comment enlever le 0 ?
}
else if(nb / 10 == 0)
{
// la si je divise 5 / 10 = 0 donc c pour ca que j avais un 0
// car 0 + '0' = 48 soit 0 du tab ASCII
// 425 me donnait 4205
ft_putchar(nb + '0');
}
else
{
ft_putchar(nb / 10 + '0');
ft_putchar(nb % 10 + '0');
}*/
}
int main(void)
{
ft_putnbr(-2147483648);
ft_putchar('\n');
ft_putnbr(-2147);
ft_putchar('\n');
ft_putnbr(42);
ft_putchar('\n');
ft_putnbr(425);
ft_putchar('\n');
ft_putnbr(4250);
ft_putchar('\n');
return (0);
}
To embed this project on your website, copy the following code and paste it into your website's HTML: