>>606
抜粋ですが、以下のように変更すればよいです。

int i;
double tmp;

if (y < 0) {
 return Power(1/x, -y);
}
tmp = 1.0;