C++ C+中的幂函数+;
我在玩一个幂函数的实现:C++ C+中的幂函数+;,c++,C++,我在玩一个幂函数的实现: #include <iostream> using namespace std; int pow(int b, int e) { int result; if (e == -1 && b != 0) { cout << "b = " << 1/b << endl; return 1/b; } else if (b != 0 && e != 0)
#include <iostream>
using namespace std;
int pow(int b, int e)
{
int result;
if (e == -1 && b != 0)
{
cout << "b = " << 1/b << endl;
return 1/b;
}
else if (b != 0 && e != 0)
{
//int e_int(int (e));
bool e_bool(e < 0);
e = (e_bool*-e + !e_bool*e);
result = b = pow(b, -e_bool)*(b*!e_bool + +e_bool);
cout << endl << "\"result\" = " << result << " " << e << endl;
for(int i = 1; i < e; i += 1)
{
result *= b;
}
return result;
}
else if (e != 0 && b == 0)
{
return 0;
}
else if (e == 0 && b != 0)
{
return 1;
}
else if (b == 1)
{
return 1;
}
else if (e == 1)
{
return b;
}
else
{
cout << endl << "Error";
return -1;
}
}
int main ()
{
cout << endl << pow(-2, -1);
return 0;
}
为什么b被设置为0?我不会说
b
被设置为0。在函数中,您有以下语句:
cout << "b = " << 1/b << endl;
cout我不会说b
设置为0。在函数中,您有以下语句:
cout << "b = " << 1/b << endl;
cout整数除法只能产生整数结果。您的程序导致以下行:
cout << "b = " << 1/b << endl;
cout整数除法只能产生整数结果。您的程序导致以下行:
cout << "b = " << 1/b << endl;
你没试过使用调试器吗?你认为1/2是什么?哦,新手犯了个错误。谢谢各位。下次试着想出一个极简主义的例子。这里太吵了。@Nikolanikovic:这取决于你的水平。如果你还在学习,你的大脑可能还没有得到足够的训练。你试过使用调试器吗?你认为1/2是什么?哎呀,新手的错误。谢谢各位。下次试着想出一个极简主义的例子。这里太吵了。@Nikolanikovic:这取决于你的水平。如果你还在学习,你的大脑可能没有得到足够的训练。