Пример #1
0
int mdc (int x, int y)
{
    int num, den, res; 

    if (is_higher(x,y))
    {
        num = x;
        den = y;
    }
    else
    {
        num = y;
        den = x;
    }

    do
    {
    	if (den != 0)
    	{
        	res = num%den;
        
        	if (res !=0)
        	{
            		num = den;
            		den = res;
        	}
    	}
    	else 
    		res = 0;
    } while (res != 0);

    return den;
}
Пример #2
0
int infix_to_postfix(char *infix, char *postfix, int n)
{
   int i = 0,j=0, top = 0; 
   char *a;

   a = (char*)malloc(n * sizeof(char));
   if(a == NULL)
       return -1;

   while(i < n)
   {
        if(isdigit(infix[i])) 
            printf("%c", infix[i]);
        else if(infix[i] == '+' || infix[i] == '-' || infix[i] == '*'|| infix[i] == '/')
        {
            while(top > 0 && !is_higher(infix[i], a[top-1]))
            {
                printf("%c", a[--top]);
            }
            a[top++] = infix[i];
        }
        else if(infix[i] == '(')
            a[top++] = infix[i];
        else if(infix[i] == ')')
        {
            while(top > 0 && a[top-1] != '(')
            {
                printf("%c", a[--top]);
            }
            if(top > 0 && a[top-1] == '(')
                --top;
        }
        ++i;
   }

   free(a);
}