读书人

C++程序哪错了?多谢

发布时间: 2012-03-24 14:00:46 作者: rapoo

C++程序哪错了???谢谢
程序要求如下:
编写递归函数getpower计算x^y,
intgetPower(int想,int y); //整型形式,当y<0,返回0;

我变得程序如下:

#include<iostream.h>
#include<math.h>

int getPower(int x,int y)
{
if(y<0)
return 0; //当改为return 1;时答案正确,但是与题目要求不合。

else
return x*getPower(x,y-1);

}

int main()
{
int a,b;
int n;
cout<<"请输入两个数a,b:";
cin>>a>>b;
n=getPower(a,b);
cout<<"x^y="<<n<<endl;
return 0;

}
程序运行为请输入两个数a,b:2 2

x^y=0


[解决办法]
#include<iostream>
#include<cmath>
using namespace std;
int getPower(int x,int y)
{
if(y<1) //这里要改为if(y<1)
return 1; //改为return 1
else
return x*getPower(x,y-1);

}
int main()
{
int a,b;
int n;
cout<<"请输入两个数a,b:";
cin>>a>>b;
n=getPower(a,b);
cout<<"x^y="<<n<<endl;
return 0;
}

[解决办法]
[code=C/C++][/code]
#include "iostream"
#include "math.h"
using namespace std;

int sum = 1;
int getPower(int x,int y)
{
if (y < 0)
return 0;
if (y == 0)
return sum;
else
return sum * x * getPower(x, y - 1);
}

int main()
{
int a,b;
int n;
cout << "请输入两个数a,b:";
cin >> a >> b;
n = getPower(a,b);
cout << "x^y = " << n << endl;
return 0;

}


楼主,看看这符合你要求不?!

读书人网 >C++

热点推荐