写程序求 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相同,为何?
----------------解决方案--------------------------------------------------------
把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; }
有人已经给你讲过了,讲的很好。
----------------解决方案--------------------------------------------------------