C語言中math.c庫文件提供了幂函數pow()。但今天我們來簡單實現一個幂函數。我們分為幾個步驟來實現
一、分析算法
求正整數的幂,需要把整數n相乘,如2的3次幂,即2*2*2,将整數2相乘3次。多個數反複執行相同的操作,自然就會想到使用循環。如何進行循環,看如下代碼示例
for(i = 1; i<=p;i )
pow *= n;
上述示例中,n值表示的是所求的數,pow則是n的p次幂,p為幂。帶入數字進行驗證,假設n=2,p=3,表示求2的3次幂
第一次循環,pow = pow*n,即pow = 1*2 = 2
第二次循環,pow = pow*n,即pow =2 * 2 = 4
第三次循環,pow = pow*n,即pow = 4 * 2 = 8
二、函數實現
使用函數實現,主要考慮兩個問題:
1.函數的參數是什麼
函數的參數可以從功能考慮,主要是求某個數的多少次方,那參數其實就兩個:一個是數值,另一個是多少次幂。在這個例子中,使用double類型表示所求數值,可以求整數或浮點數;使用int表示求整數次幂。
2.函數的返回值是什麼
在該例子中,使用函數後肯定會返回一個結果,對于整數是整型,對于浮點數是double型,所以返回值使用return返回double類型。
所有函數聲明如下:
double power(double n, int p);
三、代碼實現
#include<stdio.h>
double power(double n, int p);
int main(void){
double x, xpow;
int exp;
printf("請輸入數值及整數次方:");
while(scanf("%lf %d",&x,&exp) == 2){
xpow = power(x,exp);
printf("%.3g 的 %d 次方是 %.5g\n",x,exp,xpow);
printf("輸入新的數值對,或使用q退出.\n");
}
}
double power(double n, int p){
double pow = 1;
int i;
for(i = 1;i<=p;i ){
pow *= n;
}
return pow;
}
運行結果:
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!