为什么我的功能不起作用?

时间:2018-01-23 09:38:03

标签: c++ function

#include <iostream>
using namespace std;
int exponent(int x){
    int n = 6;
    for (int i = 0 ;i<4 ;i++){
        n*=6;
    }
    return x;

}
void print_exponent(int x){

    cout<<"6^5 = "<<x<<endl;
}
int main () {
    int x;

    print_exponent(x);
    return 0;
}

我写了2个函数,第一个计算6 ^ 5,第二个打印值,当我运行它时,打印出错误的计算(28),这个函数有什么问题?

3 个答案:

答案 0 :(得分:4)

您的exponent函数需要返回n而不是x,并且在您的main()中,您可能希望将变量x初始化为值{函数exponent的参数为5

int x = exponent(5);

在打印之前:<​​/ p>

print_exponent(x);

话虽如此,您的exponent函数已被破坏,因为无论参数值如何,返回值始终相同。将for循环修改为:

for (int i = 1; i < x; i++) {
    n *= 6;
}

您可能想检查参数是否等于0

if (x == 0) {
    return 1;
}

答案 1 :(得分:2)

您永远不会致电exponent。而是打印x未初始化不确定值。

此外,您的exponent函数会返回参数x,但它永远不会修改或分配给x

答案 2 :(得分:0)

您的exponent函数正在使用n进行计算,并返回未使用的x 除了在调用int x;

之前需要初始化exponent(x);