Example #1
0
static void	my_add(t_btree *root, t_btree *add,
		int (*cmp)(const t_btree *, const t_btree *))
{
	if ((*cmp)(root, add) > 0)
	{
		if (root->left)
			return (my_add(root->left, add, cmp));
		else
		{
			root->left = add;
			return ((void)(add->parent = root));
		}
	}
	else
	{
		if (root->right)
			return (my_add(root->right, add, cmp));
		else
		{
			root->right = add;
			return ((void)(add->parent = root));
		}
	}
}
Example #2
0
int	main(int ac, char **av)
{
  t_nb	*nb;

  if (ac != 5)
    {
      my_putstr("error Usage\n");
      return (1);
    }
  else
    {
      if (av[2][0] == '+')
	{
	  nb = my_add(make_nb(av[1]), make_nb(av[2]), av[3]);
	  print_nb(nb);
	}
    }
}
Example #3
0
void readArguments(char* argv[]) {
	//printf("Your arguments: operator = %s number1 = %s number2 = %s\n",argv[1],argv[2],argv[3]);
	char operator[4];
	char* number_1 = malloc(sizeof(char) * strlen(argv[2]));
	char* number_2 = malloc(sizeof(char) * strlen(argv[2]));
	strcpy(operator,argv[1]);
	strcpy(number_1,argv[2]);
	strcpy(number_2,argv[3]);

	if (strcmp(operator, "add") == 0) {
		my_add(number_1,number_2);
	} else if (strcmp(operator, "sub") == 0) {
		my_sub(number_1,number_2);
	} else if (strcmp(operator, "mul") == 0) {
		my_mul(number_1,number_2);
	} else if (strcmp(operator, "div") == 0) {
		my_div(number_1,number_2);
	} else { //A case which is not possible - except of an invalid argv[1] argument ;)
		exit(EXIT_FAILURE);
	}
}