Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "../includes/header.h"
- int check_zero(char op, int zero)
- {
- if (op == '/' && zero == 0)
- {
- put_div_error();
- return (1);
- }
- if (op == '%' && zero == 0)
- {
- put_mod_error();
- return (1);
- }
- return (0);
- }
- int invalid_argument(char *op)
- {
- if (op[1] != '\0' || (op[0] != '+' && \
- op[0] != '-' && op[0] != '*' && \
- op[0] != '/' && op[0] != '%'))
- {
- ft_putstr("0\n");
- return (1);
- }
- return (0);
- }
- int main(int argc, char **argv)
- {
- int i;
- char current_op;
- char *operations;
- t_operation_fun op_arr[5];
- op_arr[0] = ft_plus;
- op_arr[1] = ft_minus;
- op_arr[2] = ft_multiply;
- op_arr[3] = ft_div;
- op_arr[4] = ft_mod;
- current_op = argv[2][0];
- operations = "+-*/%\0";
- if (argc != 4 || invalid_argument(argv[2]) || \
- check_zero(current_op, ft_atoi(argv[3])))
- return (0);
- i = -1;
- while (operations[++i])
- if (operations[i] == current_op)
- {
- ft_putnbr(op_arr[i](ft_atoi(argv[1]), ft_atoi(argv[3])));
- ft_putchar('\n');
- return (0);
- }
- return (0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement