intra to gitea
This commit is contained in:
+60
@@ -0,0 +1,60 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* main.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: lfirmin <[email protected]> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/09/12 19:13:52 by lfirmin #+# #+# */
|
||||
/* Updated: 2024/11/03 19:40:43 by lfirmin ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
#include "../include/pushswap.h"
|
||||
|
||||
int fill_stack(t_stack *stack_a, char **av)
|
||||
{
|
||||
int i;
|
||||
int num;
|
||||
|
||||
i = 0;
|
||||
while (av[i])
|
||||
{
|
||||
if (ft_atoll(av[i]) > 2147483647)
|
||||
return (ft_printf_fd(2, "Error\n"), 0);
|
||||
num = ft_atoll(av[i]);
|
||||
if (valid_input(av[i]) == 0 && num <= INT_MAX && num >= INT_MIN \
|
||||
&& in_stack(stack_a, (int)num) == 0)
|
||||
{
|
||||
add_stack(stack_a, (int)num);
|
||||
i++;
|
||||
}
|
||||
else
|
||||
return (0);
|
||||
}
|
||||
return (1);
|
||||
}
|
||||
|
||||
int main(int ac, char **av)
|
||||
{
|
||||
t_stack *stack_a;
|
||||
t_stack *stack_b;
|
||||
char **av_pars;
|
||||
|
||||
if (ac < 2)
|
||||
return (0);
|
||||
stack_a = init_stack();
|
||||
stack_b = init_stack();
|
||||
if (!stack_a || !stack_b)
|
||||
return (1);
|
||||
av_pars = pars(av);
|
||||
if (!av_pars)
|
||||
return (ft_printf_fd(1, "error\n"), 1);
|
||||
if (!fill_stack(stack_a, av_pars))
|
||||
return (free_stack(stack_a), free_stack(stack_b), \
|
||||
free_array(av_pars), 1);
|
||||
if (is_sorted(stack_a) == 1)
|
||||
return (free_stack(stack_a), free_stack(stack_b), \
|
||||
free_array(av_pars), 1);
|
||||
sort(stack_a, stack_b);
|
||||
return (free_stack(stack_a), free_stack(stack_b), free_array(av_pars), 0);
|
||||
}
|
||||
Reference in New Issue
Block a user