Example #1
0
int	*parse_operation(char *base, char *operators, char **expr1, char **expr2)
{
  int	*flags;

  if ((flags = malloc(sizeof(*flags) * 3)) == 0)
    exit(-1);
  if (*expr1[0] == operators[OP_NEG_IDX])
    {
      flags[0] = 1;
      *expr1 = *expr1 + 1 ;
    }
  else
    flags[0] = 0;
  if (*expr2[0] == operators[OP_NEG_IDX])
    {
      flags[1] = 1;
      *expr2 = *expr2 + 1;
    }
  else
    flags[1] = 0;
  *expr1 = *expr1 + parse_zeros(base, *expr1);
  *expr2 = *expr2 + parse_zeros(base, *expr2);
  if (is_sup(base, *expr1, *expr2) == 0)
    flags[2] = 1;
  else
    flags[2] = 0;
  return (flags);
}
Example #2
0
char	*modulo(char *base, char *operators, char *expr1, char *expr2)
{
  char	tmp[2];

  tmp[0] = base[1];
  tmp[1] = '\0';
  while (is_sup(base, expr1, expr2))
    {
      my_strcpy(expr1, soustraction(base, operators, expr1, expr2));
    }
  return (expr1);
}
Example #3
0
int six_1() {
    int n;
    
    while (cin >> n) {
        int count = 0;
        for(int i = 1; i<= n;i++){
            if(is_sup(i))
                count++;
        }
        cout << count << endl;
        
    }
    return 0;
}
Example #4
0
/*
**  fonction principale
 */
char	*soustraction(char *base, char *operators, char *expr1, char *expr2)
{
  if (is_sup(base, expr1, expr2))
    {
      my_revstr(expr1);
      my_revstr(expr2);
      return (sub(base, operators, expr1, expr2, 0));
    }
  else
    {
      my_revstr(expr1);
      my_revstr(expr2);
      return (sub(base, operators, expr2, expr1, 1));
    }
} 
Example #5
0
char	*division(char *base, char *operators, char *expr1, char *expr2)
{
  char	*res;
  char	tmp[2];

  tmp[0] = base[1];
  tmp[1] = '\0';
  if ((res = malloc(sizeof(*res) * my_strlen(expr1) + my_strlen(expr2) + 1)) == 0)
    return (NULL);
  res[0] = base[0];
  res[1] = '\0';
  if (((indice_in_base(base, expr2[0]) == 1)) && (my_strlen(expr2) == 1))
    return (expr1);
  while (is_sup(base, expr1, expr2))
    {
      my_strcpy(expr1, soustraction(base, operators, expr1, expr2));
      my_strcpy(res, addition(base, res, tmp));
    }
  return (res);
}
Example #6
0
char *modulo(char *base, char  *operators,char *expr1,char *expr2)
{
  char tmp[2];

  tmp[0] = base[1];
  tmp[1] = '\0';
  while (is_sup(base, expr1, expr2))
    {
      my_strcpy(expr1, soustraction(base, operators, expr1, expr2));
    }
  int	nb;
  int   nb2;
  int   nb3;
  int   nb4;
  int   nb5;
  int   nb6;

  nb = 3%1;
  nb2 = 2%4;
  nb3 = -4%2;
  nb4 = 4%-2;
  nb5 = 2%6;
  nb6 = -4%-4;
  my_putstr("\n 3%1 :: ");
  my_put_nbr(nb);
  /*  my_putstr("\n  2%4;");
  my_put_nbr(nb2);
  my_putstr("\n  -4%2;   ");
  my_put_nbr(nb3);
  my_putstr("\n  4%-2;   ");
  my_put_nbr(nb4);
  my_putstr("\n  2%6;    ");
  my_put_nbr(nb5);
  my_putstr("\n  -4%-4  ");
  my_put_nbr(nb6);*/
  my_putstr("FIN::::::::");
  return (expr1);
}
Example #7
0
void	infin(char *str1, char *str2)
{
  int	flag1;
  int	flag2;
  char	*added;
  char	*mined;
  int	flagsup;
 
  flag1 = 0;
  flag2 = 0;
  while (*str1 == '-')
    {
      flag1 = 1;
      str1++;
    }
  while (*str2 == '-')
  {
    flag2 = 1;
    str2++;
  }
  if (!flag1 && !flag2)
    {
      revstr(str1);
      revstr(str2);
      added = add(str1, str2);
      revstr(added);
      while (*added == '0' && *(added + 1) != '\0')
	added++;
      my_putstr(added);
    }
  else if (flag1 && flag2)
    {
      revstr(str1);
      revstr(str2);
      added = add(str1, str2);
      revstr(added);
      while (*added == '0' && *(added + 1) != '\0')
	added++;
      if (added[0] != '0' || my_strlen(added) != 1)
	my_putchar('-');
      my_putstr(added);
    }
  /* -4 2 -2 4*/
  else if (flag1 && !flag2)
    {
      while (*str1 == '0' && *(str1 + 1) != '\0')
	str1++;
      while (*str2 == '0' && *(str2 + 1) != '\0')
	str2++;
      flagsup = is_sup(str1, str2);
      revstr(str2);
      revstr(str1);

      /*-4 3 */
      if (flagsup)
	{
	  mined = min(str1, str2);
	  revstr(mined);
	  while (*mined == '0' && *(mined + 1) != '\0')
            mined++;
	  if (mined[0] != '0' || my_strlen(mined) != 1)
	    my_putchar('-');
	  my_putstr(mined);
	}
      /*-3 4 */
      else
	{
	  mined = min(str2, str1);
	  revstr(mined);
	  while (*mined == '0' && *(mined + 1) != '\0')
	    mined++;
	  my_putstr(mined);
	}
    }
  else if (!flag1 && flag2)
    {
      while (*str1 == '0' && *(str1 + 1) != '\0')
	str1++;
      while (*str2 == '0' && *(str2 + 1) != '\0')
	str2++;
      flagsup = is_sup(str1, str2);
      revstr(str2);
      revstr(str1);
      /* 4 -3*/
      if (flagsup)
	{
	  mined = min(str1, str2);
	  revstr(mined);
	  while (*mined == '0' && *(mined + 1) != '\0')
	    mined++;
	  my_putstr(mined);
	}
      /*-3 4 */
      else
	{
	  mined = min(str2, str1);
	  revstr(mined);
	  while (*mined == '0' && *(mined + 1) != '\0')
	    mined++;
	  if (mined[0] != '0' || my_strlen(mined) != 1)
	    my_putchar('-');
	  my_putstr(mined);
	}
    }
}