以下代码无效。它没有错误,我在逻辑上做了一些错误。我想用函数找到数字的力量。如何使这个代码工作?
代码:
#include<iostream>
using namespace std;
int pow(int);
int main()
{
int x,p,ans;
cout<<"Enter a number";
cin>>x;
cout<<"Enter the power of the number";
cin>>p;
ans=pow(x);
cout<<ans;
return 0;
}
int pow(int)
{
int a=1,i,p,x;
for(i=0;i<=p;i++)
{
a=a*x;
}
return a;
}
答案 0 :(得分:1)
这是工作代码:
df.to_csv(file_name, sep='\t')
您必须将局部变量传递给函数,而不是定义具有相同名称的新变量。您正在做的事情应该为您提供有关未使用的变量(let defaultValues = ["highScore" : 0,
"second" : 0,
"third" : 0,
"balls" : 0,
"maxLives" : 5,
"increaseML" : 250]
d.register(defaults: defaultValues)
d.synchronize()
中的#include<iostream>
using namespace std;
int pow(int, int);
int main()
{
int x,p,ans;
cout<<"Enter a number";
cin>>x;
cout<<"Enter the power of the number";
cin>>p;
ans=pow(x, p);
cout<<ans;
return 0;
}
int pow(int x, int p)
{
int a=1,i;
for(i=0;i<=p;i++)
{
a=a*x;
}
return a;
}
和x
)的警告,并且它还会在p
中调用未定义的行为,因为已定义的变量的初始化读取那里。
你的功能也错了。你只是将1乘以一个值,它永远保持为1。
答案 1 :(得分:1)
您的函数必须指定参数名称(不仅仅是类型):
int pow(int) -> int pow(int b, int p)
您需要多次迭代:
for (i = 0; i <= p; i++) -> for (i = 0; i < p; i++)
您可以缩短一些算术运算:
a=a*x -> a *= x;
最终功能:
int pow(int b, int p)
{
int a = 1, i;
for (i = 0; i < p; i++)
a *= b;
return a;
}
通过传递先前声明的变量来调用它:
pow(x, p)
所以你的最终代码如下:
#include <iostream>
int pow(int b, int p)
{
int a = 1, i;
for (i = 0; i < p; i++)
a *= b;
return a;
}
int main()
{
int x, p, ans;
std::cin >> x >> p;
ans = pow(x, p);
std::cout << ans << std::endl;
return 0;
}