#include<stdio.h>
int fun(int ,int);
main()
{
int res;
res=fun(2,4);
printf("in main() res=%d\n",res);
}
int fun(int x,int n)
{
int val=1;
val=1;
if(n>0)
{
if(n%2==1)
val=val*x;
val=val*fun(x*x,n/2);
}
}
我中间我在执行val = val * x时得到val = 16,但返回时不采用该值?为什么返回时取该变量的最新值?
您必须return
在函数中获得所需的结果,最后一行应为:
return val;
您应该对此进行编译器诊断。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句