#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),这个函数有什么问题?
答案 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);