#include<conio.h>
#include<stdio.h>
struct frac{
       int num;
       int den;
       }n1,n2,res;
void suma (void);
void resta (void);
void div (void);
void mult (void);
int main (void)
{
    unsigned char op;
    clrscr();
    printf("Elige una opcion del menu\n");
    printf("1  --  Suma\n");
    printf("2  --  Resta\n");
    printf("3  --  Division\n");
    printf("4  --  Multiplicacion\n");
    op=getch();
    if(op==49)
	suma();
    else
	if(op==50)
	    resta();
	else
	    if(op==51)
	       div();
	    else
		if(op==52)
		    mult();
		else
		    printf("\nOpcion no valida\n");
    printf("\nOprima una tecla para terminar...");
    getch();
    return 0;
}
void suma (void)
{
     int nu1,nu2;
     printf("Ingresa la primera fraccion a sumar\ningresa primero el denominador y luego el denominador\n");
     scanf("%d %d",&n1.num,&n1.den);
     printf("Ingresa la segunda fraccion a sumar\n");
     scanf("%d %d",&n2.num,&n2.den);
     if(n1.den==n2.den)
	{
	    res.den=n1.den;
	    res.num=n1.num+n2.num;
	}
     else
	{
	    res.den=n1.den*n2.den;
	    nu1=(res.den/n1.den)*n1.num;
	    nu2=(res.den/n2.den)*n2.num;
	    res.num=nu1+nu2;
	}
     printf("\n%d/%d  +  %d/%d  =  %d/%d\n",n1.num,n1.den,n2.num,n2.den,res.num,res.den);
}

void resta (void)
{
     int nu1,nu2;
     printf("Ingresa la fraccion a la cual se le restara la segunda\ningresa primero el denominador y luego el denominador\n");
     scanf("%d %d",&n1.num,&n1.den);
     printf("Ingresa la segunda fraccion\n");
     scanf("%d %d",&n2.num,&n2.den);
     if(n1.den==n2.den)
	{
	    res.den=n1.den;
	    res.num=n1.num-n2.num;
	}
     else
	{
	    res.den=n1.den*n2.den;
	    nu1=(res.den/n1.den)*n1.num;
	    nu2=(res.den/n2.den)*n2.num;
	    res.num=nu1-nu2;
	}
     printf("\n%d/%d  +  %d/%d  =  %d/%d\n",n1.num,n1.den,n2.num,n2.den,res.num,res.den);
}

void div (void)
{
     int nu1,nu2;
     printf("Ingresa la primera fraccion que sera dividida por la segunda\ningresa primero el denominador y luego el denominador\n");
     scanf("%d %d",&n1.num,&n1.den);
     printf("Ingresa la segunda fraccion\n");
     scanf("%d %d",&n2.num,&n2.den);
     res.num=n1.num*n2.den;
     res.den=n1.den*n2.num;
     printf("\n%d/%d  /  %d/%d  =  %d/%d\n",n1.num,n1.den,n2.num,n2.den,res.num,res.den);
}

void mult (void)
{
     int nu1,nu2;
     printf("Ingresa la primera fraccion\ningresa primero el denominador y luego el denominador\n");
     scanf("%d %d",&n1.num,&n1.den);
     printf("Ingresa la segunda fraccion\n");
     scanf("%d %d",&n2.num,&n2.den);
     res.num=n1.num*n2.num;
     res.den=n1.den*n2.den;
     printf("\n%d/%d  *  %d/%d  =  %d/%d\n",n1.num,n1.den,n2.num,n2.den,res.num,res.den);
}
