// 03042008.cpp. P. H Anderson

#include <stdio.h>

typedef struct
{
    float x;
    float y;
} RECT;

typedef struct
{
    float num;
    float denom;
} FRACT;

FRACT mul_f(FRACT a, FRACT b);
RECT c_mul(RECT a, RECT b);

int main()
{
    FRACT f1, f2, f3;
    RECT a1, a2, a3;
        
    f1.num = 1.0; f1.denom = 4.0;  f2.num = 2.0; f2.denom = 3.0;
    f3 = mul_f(f1, f2);
    
    printf ("%.2f %.2f\n", f3.num, f3.denom);
    
    a1.x = 3.0; a1.y = 4.0; a2.x = -5.0; a2.y = 13.0;
    
    a3 = c_mul(a1, a2);
    
    printf("%.2f %.2f\n", a3.x, a3.y);
            
    while(getchar() != 'x')
    {
    }
}

FRACT mul_f(FRACT a, FRACT b)
{
    FRACT c;
    c.num = a.num * b.num;
    c.denom = a.denom * b.denom;
    return(c);
}

RECT c_mul(RECT a, RECT b)
{
    RECT c;
    c.x = a.x * b.x - a.y * b.y;
    c.y = b.x * a.y + a.x * b.y;
    return(c);
}