// version la plus simple
#include <unistd.h>
#include <limits.h>

void ft_putnbr(int nb)
{
    char z;
    if (nb == INT_MIN)
    {
        write(1, "-2147483648", 11);
    }
    else
    {
        if (nb < 0)
        {
            write(1, "-", 1);
            nb = -nb;  // Conversion correcte du nombre négatif
        }
        if (nb > 9)
        {
            ft_putnbr(nb / 10);
            ft_putnbr(nb % 10);
        }
        else
        {
            z = nb + '0';
            write(1, &z, 1);
        }
    }
}

int main(void)
{   
    ft_putnbr(45);
    write(1, "\n", 1);
    ft_putnbr(-45);
    write(1, "\n", 1);
    ft_putnbr(0);
    write(1, "\n", 1);
    ft_putnbr(INT_MIN);  // Test pour la valeur minimale d'un entier
    return 0;
}

/*   
// version la plus comprehensif
#include <unistd.h>

void	ft_putnbr(int nb)
{
	char	nbl;


	if (nb == -2147483648)
	{
		write(1, "-2147483648", 11);
	}
	else 
    {
        if (nb < 0)   
    	{
    		write(1, "-", 1);
            nb = nb * (-1);
    	}
    	if (nb > 9)
    	{
    		ft_putnbr(nb / 10);
    		ft_putnbr(nb % 10);
    	}
    	if (nb < 10)
    	{
    		nbl = nb + '0';
    		write(1, &nbl, 1);
    	}
    }
}
int	main(void)
{	
    ft_putnbr(45);
    ft_putnbr(-45);
    ft_putnbr(0);
    ft_putnbr(-2147483648);
    return (0);
}
*/
/*
// verion oceano
#include <unistd.h>

void	ft_putnbr(int nb)
{
	long	nbl;
	char	c[10];
	short	i;

	nbl = nb;
	i = 0 ;
	if (0 == nb)

	{
		write(1, "0", 1);
		return ;
	}
	if (nbl < 0)
	{
		nbl *= (-1);
		write(1, "-", 1);
	}
	while (nbl % 10)
	{
		c[i++] = (nbl % 10) + 48;
		nbl /= 10;
	}
	while (i >= 0)
		write(1, &c[--i], 1);
}

int main(void)
{
    ft_putnbr(-42);
    write(1, "\n", 1);
    ft_putnbr(0);
    write(1, "\n", 1);
    ft_putnbr(42);
    write(1, "\n", 1);
    ft_putnbr(2147483647);
    write(1, "\n", 1);
    ft_putnbr(-2147483647);
    write(1, "\n", 1);    
}*/

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: