三種錯誤處理的方法:函數
1) 函數用返回值來告訴調用者是否出錯(return -1;)spa
2) 當發生錯誤是設置一個全局變量it
3) 拋出異常 當函數運行出錯時,就拋出一個異常 (try... catch...)。io
Question:實現函數double Power(double base, int exponent), 求base 的 exponent 次方。不得使用庫函數,同時,不須要考慮大數問題。變量
指數有兩種狀況:正數,負數。還應考慮底數爲零的狀況【由於指數爲負數時,應該考慮求倒數】。方法
//判斷兩個 double 類型的數值是否相等
bool equal(double num1, double num2)
{
if((num1 - num2) < 0.000001 &&
(num1 - num2) > 0.000001)
return true;
else
return false;
}異常
double PowerWithUnsignedExponent(double base, unsigned int absExponent)
{
double result = 1.0;
for(int i = 1; i <= absExponent; i++)
{
result *= base;
}
return result;
}錯誤
double Power(double base, int exponent)
{
InvalidInput = false;
//1. 底數爲 0, 指數爲負數的狀況
if(equal(base, 0.0) && exponent < 0)
{
InvalidInput = 0;
return 0.0;
}
//當指數爲負數時,現將其轉換爲正數,而後將結果取倒數
unsigned int absExponent = (unsigned int) exponent;
if(exponent < 0)
absExponent = (unsigned int) (-exponent);
double result = PowerWithUnsignedExponent(base, absExponent);
if(exponent < 0)
{
result = 1 / result;
}
return result;
}return