Added abs and brackets on reduce(). Break removed

Problem fixed by introducing abs in reduce function which perhaps eliminated the problem of having a large negative numerator in the first fraction which wouldn't reduce because it can't decrement from a negative number while trying to have it more than or equal to one.

*(See CoolStuff folder or comments on why the last commit would have a problem with

if(r_num % i == 0 && r_den % i == 0)
{
r_num/=i;
r_den/=i;
}

  VS


if(r_num % i == 0 && r_den % i == 0)
 r_num/=i;
 r_den/=i;

When they compile.

Removed break statement from i == 1 because it would only exit the block so if it was set to false, it would then go to the true statement under it instead of executing an exit from the function before setting the boolean argument to false or true. So I added 'return' something on each conditional if they were sufficiently met.