aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--c00/ex07/ft_putnbr.c48
-rw-r--r--c00/ex08/ft_print_combn.c40
-rw-r--r--c00/main.c1
-rw-r--r--shell00/ex09/ft_magic2
4 files changed, 41 insertions, 50 deletions
diff --git a/c00/ex07/ft_putnbr.c b/c00/ex07/ft_putnbr.c
index e147217..2e7e07e 100644
--- a/c00/ex07/ft_putnbr.c
+++ b/c00/ex07/ft_putnbr.c
@@ -17,45 +17,17 @@ void ft_putchar(char c)
write(1, &c, 1);
}
-void dirty_hack(void)
-{
- ft_putchar('2');
- ft_putchar('1');
- ft_putchar('4');
- ft_putchar('7');
- ft_putchar('4');
- ft_putchar('8');
- ft_putchar('3');
- ft_putchar('6');
- ft_putchar('4');
- ft_putchar('8');
-}
-
void ft_putnbr(int nb)
{
- int i;
- int rev_digits[100];
+ unsigned int u_nb;
- if (nb < 0)
- {
- ft_putchar('-');
- if (nb == -2147483648)
- {
- dirty_hack();
- return ;
- }
- nb = -nb;
- }
- i = 0;
- while (nb >= 0)
- {
- rev_digits[i] = nb % 10;
- nb = nb / 10;
- i++;
- }
- while (i > 0)
- {
- i--;
- ft_putchar(rev_digits[i] + '0');
- }
+ u_nb = nb;
+ if (nb < 0)
+ {
+ ft_putchar('-');
+ u_nb = -nb;
+ }
+ if (u_nb > 9)
+ ft_putnbr(u_nb / 10);
+ ft_putnbr(u_nb % 10);
}
diff --git a/c00/ex08/ft_print_combn.c b/c00/ex08/ft_print_combn.c
index 975c306..c7b415f 100644
--- a/c00/ex08/ft_print_combn.c
+++ b/c00/ex08/ft_print_combn.c
@@ -10,16 +10,34 @@
/* */
/* ************************************************************************** */
-/*#include <unistd.h>*/
+#include <unistd.h>
-/*void ft_print_combn(int n)*/
-/*{*/
- /*int i;*/
+void ft_putchar(char c)
+{
+ write(STDOUT_FILENO, &c, 1);
+}
- /*if (n == 0)*/
- /*return ;*/
- /*i = 0;*/
- /*while (i < 10)*/
- /*{*/
- /*}*/
-/*}*/
+void comb(int start, int n)
+{
+ int i;
+
+ if (n == 0)
+ {
+ ft_putchar(',');
+ ft_putchar(' ');
+ return ;
+ }
+ i = start + 1;
+ while (i < 10)
+ {
+ ft_putchar(start + '0');
+ ft_putchar(i + '0');
+ comb(i, n - 1);
+ i++;
+ }
+}
+
+void ft_print_combn(int n)
+{
+ comb(0, n);
+}
diff --git a/c00/main.c b/c00/main.c
index 5d6e31b..b923f4e 100644
--- a/c00/main.c
+++ b/c00/main.c
@@ -44,6 +44,5 @@ int main()
/*ft_putchar('\n');*/
/*ft_putnbr(-42);*/
-
ft_print_combn(2);
}
diff --git a/shell00/ex09/ft_magic b/shell00/ex09/ft_magic
new file mode 100644
index 0000000..6c40c41
--- /dev/null
+++ b/shell00/ex09/ft_magic
@@ -0,0 +1,2 @@
+42 string 42
+!:mime 42 file