Advertisement
trapcodien

ft_range.c

Sep 19th, 2013
771
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.07 KB | None | 0 0
  1. /* ************************************************************************** */
  2. /*                                                                            */
  3. /*                                                        :::      ::::::::   */
  4. /*   ft_range.c                                         :+:      :+:    :+:   */
  5. /*                                                    +:+ +:+         +:+     */
  6. /*   By: garm <marvin@42.fr>                        +#+  +:+       +#+        */
  7. /*                                                +#+#+#+#+#+   +#+           */
  8. /*   Created: 2013/09/19 19:30:40 by garm              #+#    #+#             */
  9. /*   Updated: 2013/09/19 19:30:42 by garm             ###   ########.fr       */
  10. /*                                                                            */
  11. /* ************************************************************************** */
  12.  
  13. #include <stdlib.h>
  14. #include <unistd.h>
  15.  
  16. void    ft_putchar(char c)
  17. {
  18.     write(1, &c, 1);
  19. }
  20.  
  21. int     ft_putnbr(int nb)
  22. {
  23.     if (nb < 0)
  24.     {
  25.         ft_putchar('-');
  26.         nb = nb * -1;
  27.     }
  28.     if (nb >= 0 && nb <= 9)
  29.         ft_putchar(nb + 48);
  30.     if (nb >= 10)
  31.     {
  32.         ft_putnbr(nb / 10);
  33.         ft_putnbr(nb % 10);
  34.     }
  35.     return(0);
  36. }
  37.  
  38. int     *ft_range(int min, int max)
  39. {
  40.     int     *range;
  41.     int     diff;
  42.     int     i;
  43.  
  44.     i = 0;
  45.     diff = max - min;
  46.     range = malloc(sizeof(int) * diff);
  47.  
  48.     while (min + i < max)
  49.     {
  50.         range[i] = min + i;
  51.         i++;
  52.     }
  53.  
  54.     return (range);
  55. }
  56.  
  57. int     ft_ultimate_range(int **range, int min, int max)
  58. {
  59.     int diff;
  60.     int i;
  61.     int *array;
  62.  
  63.     i = 0;
  64.     diff = max - min;
  65.     array = malloc(sizeof(int) * diff);
  66.     if (array == NULL)
  67.     {
  68.         range = NULL;
  69.         return (0);
  70.     }
  71.     if (min >= max)
  72.     {
  73.         range = NULL;
  74.         return (0);
  75.     }
  76.     while(min + i < max)
  77.     {
  78.         array[i] = min + i;
  79.         i++;
  80.     }
  81.  
  82.  
  83.     *range = array;
  84.     return (i);
  85. }
  86.  
  87. int     main(void)
  88. {
  89.     int     a;
  90.     int     b;
  91.     int     ret;
  92.     int     *result = NULL;
  93.  
  94.     a = 10;
  95.     b = 15;
  96.  
  97.     ret = ft_ultimate_range(&result, a, b);
  98.  
  99.     if (!ret)
  100.             return 0;
  101.  
  102.     ft_putnbr(result[1]);
  103.     ft_putchar('\n');
  104.     ft_putnbr(result[4]);
  105.     ft_putchar('\n');
  106.  
  107.     return (0);
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement