我需要编写需要一个函数来计算C ++中的power
我不明白为什么我的代码错误。
离。 :base:2指数3 - >结果:4.48498e-306 如果我使用" int"结果是 - > 2
#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;
double power(double base, double exponent);
int main()
{
double base, exponent, power;
cout << "Enter a base " << endl;
cin >> base;
cout << "Enter an exponent" << endl;
cin >> exponent;
cout << "The result is ': "<< power << endl;
return 0;
}
double power(double base, double exponent)
{
int i;
double s=1;
for (i = 0; i < exponent; ++i)
s *= base;
return s;
}
我做错了什么?
答案 0 :(得分:4)
在您的代码中,您有两个power
声明。
double power(double base, double esponente);
double base,esponente,power;
您声明变量power
但是在打印之前从未对其进行初始化,因此它将是未定义的。重新运行您的程序实际上会给您一个不同的数字。您需要删除此局部变量声明,因为它会影响全局函数声明。
然后,而不是
cout<<"\nL'elevamento a potenza e': "<<power<<endl;
你想要这一行:
cout<<"\nL'elevamento a potenza e': "<<power(base, esponente)<<endl;
答案 1 :(得分:1)
你需要这样的调用函数,带参数: 这是你的主要内容。你不需要局部可变功率。你想要具有名称权力的呼叫功能。
int main ()
{
double base,esponente;
cout<<" \n Inserisci base \n";
cin>>base;
cout<<"\nInserisci esponente\n";
cin>>esponente;
cout<<"\nL'elevamento a potenza e': "<<power(base,esponente)<<endl;
system ("PAUSE");
}
答案 2 :(得分:1)
您要么打印函数power
的地址,要么以编写代码的方式打印双power
的未初始化值。 (从技术上讲,你正在击中一个未初始化的阴影变量)。在任何情况下,你甚至没有调用你写的函数......如何知道power
函数被调用?有什么论据?
修复1.建议您删除&#39; double&#39; power
修复2.实际调用该函数并使用/存储/打印结果
例子。 收到用户的输入后执行以下操作:
double result = power( base, exponent );
cout << result << endl;
打印结果。