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;
}
运行结果: