m( int m , int n )
{
return m / find_gcd( m , n ) * n ;
}
void add_to( frac_t * p_f1 , frac_t const * p_f2 )
{
int lcm = find_lcm( abs( p_f1->denom ) , abs( p_f2->denom ) );
p_f1->numer = lcm / p_f1->denom * p_f1->numer
+ lcm / p_f2->denom * p_f2->numer ;
p_f1->denom = lcm ; //分母总是正的
reduce( p_f1 ); //约分
}
int input_frac( frac_t * p_f )
{
return scanf( "%d / %d" , &p_f->numer , &p_f->denom );
}
int input_exp( frac_t * p_f1 , char * p_o , frac_t * p_f2 )
{
if ( input_frac( p_f1 ) != 2 )
return FAIL ;
if ( scanf( " %c " , p_o ) != 1 )
return FAIL ;
switch ( * p_o )
{
default : return FAIL ;//不是加、减法
case '+':
case '-':
;
}
if ( input_frac( p_f2 ) != 2 )
return FAIL ;
return !FAIL ;
}