열렬히.뛰기

c00

école 42 > C > c00

ex00

c
#include <unistd.h>

void	ft_putchar(char c)
{
	write(1, &c, 1);
}

ex01

c
#include <unistd.h>

void	ft_print_alphabet(void)
{
	char	ch;

	ch = 'a';
	while (ch <= 'z')
	{
		write(1, &ch, 1);
		ch++;
	}
}

ex02

c
#include <unistd.h>

void	ft_print_reverse_alphabet(void)
{
	char	ch;

	ch = 'z';
	while (ch >= 'a')
	{
		write(1, &ch, 1);
		ch--;
	}
}

ex03

c
#include <unistd.h>

void	ft_print_numbers(void)
{
	char	ch;

	ch = '0';
	while (ch <= '9')
	{
		write(1, &ch, 1);
		ch++;
	}
}

ex04

c
#include <unistd.h>

void	ft_is_negative(int n)
{
	char	a;
	char	b;

	a = 'N';
	b = 'P';
	if (n < 0)
	{
		write(1, &a, 1);
	}
	else
	{
		write(1, &b, 1);
	}
}

ex05

c
#include <unistd.h>

void	ft_print_nub(char a, char b, char c)
{
	write (1, &a, 1);
	write (1, &b, 1);
	write (1, &c, 1);
	if (a != '7')
	{
		write (1, ",", 1);
		write (1, " ", 1);
	}
}

void	ft_print_comb(void)
{
	char	a;
	char	b;
	char	c;

	a = '0';
	while (a <= '7')
	{
		b = a + 1;
		while (b <= '8')
		{
			c = b + 1;
			while (c <= '9')
			{
				ft_print_nub(a, b, c);
				c++;
			}
			b++;
		}
		a++;
	}
}

ex06

c
#include <unistd.h>

void	bring_num(int n)
{
	char	c1;
	char	c2;

	c1 = '0' + n / 10;
	c2 = '0' + n % 10;
	write(1, &c1, 1);
	write(1, &c2, 1);
}

void	ft_print_comb2(void)
{
	int	a;
	int	b;

	a = 0;
	b = 1;
	while (a <= 98)
	{
		b = a + 1;
		while (b <= 99)
		{
			bring_num(a);
			write(1, " ", 1);
			bring_num(b);
			if (a != 98)
			{
				write(1, ",", 1);
				write(1, " ", 1);
			}
			else
				write(1, "\n", 1);
			b++;
		}
		a++;
	}

ex07

c
#include <unistd.h>

void	find_write(int x)
{
	char	c;

	if (x == -2147483648)
	{
		write (1, "-2147483648", 11);
		return ;
	}
	else if (x < 0)
	{
		write(1, "-", 1);
		find_write(x * (-1));
	}
	else if (x < 10)
	{
		c = '0' + x;
		write(1, &c, 1);
		return ;
	}
	else
	{
		find_write(x / 10);
		find_write(x % 10);
	}
}

void	ft_putnbr(int nb)
{
	find_write(nb);
}

ex08

c
#include <unistd.h>

void	p_combn(int n, int level, int i, char *arr)
{
	if (level == n)
	{
		write(1, arr, n);
		if (arr[0] != 10 - n + '0')
			write(1, ", ", 2);
		return ;
	}	
	while (i <= 9)
	{
		arr[level] = i + '0';
		p_combn(n, level + 1, i + 1, arr);
		i++;
	}
}

void	ft_print_combn(int n)
{
	int		level;
	int		i;
	char	arr[11];

	i = 0;
	level = 0;
	p_combn(n, level, i, arr);
}