关于return 返回值的问题
有问题的代码#include<iostream>
int main()
{
using namespace std;
double x,n,y;
y = 1;
double xn(double x,double n,double y);
cout<<"请输入 x 和 n : ";
cin >> x >> n;
cout << endl
<< "x 的 n 次幂为 :"
<< xn(x,n,y);
}
double xn (double x,double n,double y)
{
y *= x;
if ( --n > 0 )
xn(x,n,y);
else return y;
}
能达到我要求的代码
#include<iostream>
int main()
{
using namespace std;
double x,n,y;
y = 1;
int z = 0;
double xn(double x,double n,double y,int z);
cout<<"请输入 x 和 n : ";
cin >> x >> n;
cout << endl
// << "x 的 n 次幂为 :"
// << xn(x,n,y,z);
xn(x,n,y,z);
double xn (double x,double n,double y)
{ using namespace std;
y *= x;
if ( --n > 0 )
xn(x,n,y,z);
else cout<<y;
}
求指教为什么两种情况结果不一样