C++ 使用if/else if的函数输出问题
我(c++新手)试图手动创建幂函数,遇到了这样一个问题:如果输入的功率为负,结果总是打印为0。我怀疑其中一个变量可能没有正确声明,您能帮忙吗C++ 使用if/else if的函数输出问题,c++,C++,我(c++新手)试图手动创建幂函数,遇到了这样一个问题:如果输入的功率为负,结果总是打印为0。我怀疑其中一个变量可能没有正确声明,您能帮忙吗 #include <iostream> using namespace std; int power; float result = 1, base; int firs(); void pow(int base, int power); int main() { firs(); pow(base, power);
#include <iostream>
using namespace std;
int power;
float result = 1, base;
int firs();
void pow(int base, int power);
int main()
{
firs();
pow(base, power);
return 0;
}
int firs()
{
cout << "Enter a base input: ";
cin >> base;
cout << "Enter a power input: ";
cin >> power;
return base, power;
}
void pow(int base, int power)
{
cout << "With a given base of " << base << " and a given power of " << power << endl;
if (power > 0)
{
for (int i = 0; i < power; i++)
{
result = result*base;
}
cout << "The final answer is: " << result;
}
else if (power < 0)
{
for (int i = 0; i > power; i--)
{
result = result*(1/base);
}
cout << "The final answer is: " << result;
}
else
{
cout << "The final answer is: " << 1;
}
}
#包括
使用名称空间std;
整数幂;
浮动结果=1,基数;
int firs();
无效功率(整数基,整数功率);
int main()
{
冷杉();
战俘(基地、力量);
返回0;
}
国际财务报告()
{
cout>base;
功率;
返回基地,动力;
}
无效功率(整数基,整数功率)
{
cout问题在于以下代码部分:
else if (power < 0)
{
for (int i = 0; i > power; i--)
{
result = result*(1/base);
}
}
另外,.只需更改这一行即可
result = result*(1/base);
到
您将得到正确的结果。@Tony Yes,逗号运算符(,
)从左到右执行所有语句,并返回最右边的语句。因此return base,power;
与return power;
完全相同;
不知道这有什么意义…在C/C++中,一个函数只能返回一个值。或者通过references@Tony我花了一段时间才明白这一点e> pow
函数中的base定义是全局范围内的阴影base
定义。前者是int
,后者是float
啊,正如我所预料的。谢谢。
result = result*(1/base);
result = result*(1.0/base);