


请问为什么会运行会这样 还不报错 (报错我至少知道改哪里)希望各位指点吧
关注【相关推荐】
#include <stdio.h>
double calc_pow(double x, int n);
int main()
{
double x;
int n;
scanf("%lf %d", &x, &n);
printf("%.0f\n", calc_pow(x, n));
return 0;
}
int i=1;
double calc_pow(double x, int n)
{
printf("%f %d\n", x, n);
//if(n==1) return x; //如果用这个判断的话,会少一个,如果n是0就不可以了
if (n == 0)
return 1;
if (n % 2 == 0)
{
//printf("%f %d\n", x, n);
return calc_pow(x * x, n / 2);
}
else
{
//printf("%f %d\n", x, n);
return calc_pow(x * x, n / 2) * x; //记住函数最终是返回当前函数的值,返回完之后会继续执行下面的语句,直到执行本次函数之后才会返回上层函数
}
}