当前位置: 代码迷 >> C语言 >> [求助]请高手出手吧!觅高手,快请进!快请进吧!
  详细解决方案

[求助]请高手出手吧!觅高手,快请进!快请进吧!

热度:121   发布时间:2004-12-24 09:31:00.0
[求助]请高手出手吧!觅高手,快请进!快请进吧!
幂问题,求助!

写程序求 Xn(x的n次方)我的程序如下:但不成功为何

#include<stdio.h> power(int x,int n) { int m; if(n==1) return x; for(m=1;m<=n-1;++m) return power(x,m)*x; /*就是power(x,m)乘以x ,不知你看清楚了吗*/ } main() { int x,n; scanf("%d%d",&x,&n) ; printf("This number=%d",power(x,n)); getch(); }

我是用win-tc软件,不是TurboC的,只能正确算n=2的值,当n>2时,其值都与n=2相同,为何?

搜索更多相关的解决方案: include  power  return  number  color  

----------------解决方案--------------------------------------------------------
把for循环的++m改成m++试试!
----------------解决方案--------------------------------------------------------
return power(x,m)*x; 有人这样返回值的吗?
----------------解决方案--------------------------------------------------------
[QUOTE][QUOTE]

把++m改成m++,问题还是存在的,不知有何高见!

另:aniude是否能把有问题的句子改一下,谢谢!另请问“return power(x,m)*x; 有人这样返回值的吗?”

[/QUOTE] return 的正确引用方法是什么回事,谢谢各位的帮助!
----------------解决方案--------------------------------------------------------

1。返回值没有问题。

#include<stdio.h>

long power(int x,int n) { int m; if(n==1) return x; for(m=n-1;m>=1;m++) return power(x,m)*x; /*就是power(x,m)乘以x ,不知你看清楚了吗*/ } void main() { int x,n; scanf("%d%d",&x,&n) ; printf("This number=%d",power(x,n));

}

现在可以了

请不要重复发帖。


----------------解决方案--------------------------------------------------------

知道了,我下次不会再重复发帖了。另能否给我详细解释 for(m=n-1;m>=1;m++) 及 return power(x,m)*x  为何我原先写的行不通了,再次谢谢!


----------------解决方案--------------------------------------------------------

其实,这样改不好,for()循环没有用,若用递归,应该是

long power(int x,int n) { int m; if(n==1) return x;

else

return power(x,n-1)*x; }

有人已经给你讲过了,讲的很好。


----------------解决方案--------------------------------------------------------
  相关解决方案