Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用if/else if的函数输出问题_C++ - Fatal编程技术网

C++ 使用if/else if的函数输出问题

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);

我(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);

    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);