使用用户定义的函数查找数字的力量的问题

时间:2017-08-12 18:22:22

标签: c++

MY CODE along with the output

以下代码无效。它没有错误,我在逻辑上做了一些错误。我想用函数找到数字的力量。如何使这个代码工作?

代码:

#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;
}

2 个答案:

答案 0 :(得分:1)

这是工作代码:

df.to_csv(file_name, sep='\t')

Ideone

您必须将局部变量传递给函数,而不是定义具有相同名称的新变量。您正在做的事情应该为您提供有关未使用的变量(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;
}