用两个if语句分别进行k>0和k<0时的计算
当k==0时,不用判断直接输出1.0
#include <stdio.h>
int main()
{
int i = 0;
int n = 0;
int k = 0;
double pow=1.0;
printf("输入n和k:");
scanf("%d %d",&n,&k);
if(k>0)
{
for(i=1;i<=k;i++)
{
pow*=n;
}
}
if(k<0)
{
k=-k;
for(i=1;i<=k;i++)
{
pow/=n;
}
}
printf("%lf",pow);
return 0;
}
递归法
#include <stdio.h>
double Pow(int n,int k)
{
if(k>0)
return(n*Pow(n,k-1));
else if(k==0)
return 1;
else
return((1.0/n)*Pow(n,k+1));
}
int main()
{
int n = 0;
int k = 0;
printf("请输入n和k:");
scanf("%d %d",&n,&k);
double net = Pow(n,k);
printf("%lf",net);
return 0;
}