如何在内部做功能? C ++

时间:2017-10-12 03:12:06

标签: c++ while-loop

这是我必须做的问题(仅针对上下文):编写一个程序,它将从用户输入2个整数,然后计算第一个到第二个的幂,然后输出结果。输入,计算和输出应该在三个独立的子程序/函数中。您必须使用WHILE循环计算取幂并乘以第一个数字,即所需的次数。仅对于此作业,您可以使用全局变量在函数之间移动信息。 这是我的代码:

#include <iostream>
#include <cmath>
using namespace std;

double a, b, ans;


int main()
{
    cout << "Please enter two whole numbers: ";
    cin >> a >> b;
    cout << conclusion() << calc();

    system("pause");
    return 0;
}

int calc()
{
    double ans = pow(a, b);
    return 0;
}

int conclusion()
{
    cout << a << " To the power of " << b
         << " is " << ans;
    return 0;
}

所以,我遇到了一个问题,我在网上上课。这个家伙就像,#34;这是一个问题,弄明白就行了。&#34;我觉得这很好,但是当这样的事情出现时很难找到某些教程和问题。无论如何,我得到了我的BASE代码。现在我需要一个while循环,并且不知道这意味着什么:使用WHILE循环计算取幂并乘以第一个数字,即所需的次数。 我想我可以做一段时间然后做

double ans = pow(a, b);

但事实并非如此。这就是我的章节教给我的东西,但不是一段时间以及你需要为此做的所有额外的东西。我问了一个同学,她说她也有一段非常困难的时间,她给我的榜样是:

int a = 0;

int b =  0;

int c = 1;

cin >> a;

cin >> b;

int powerOp(int a, int b, int c)
{

while (b > 0)
          {
               c = c * a;

               b--;
          }
               cout  <<  c;
               return c;
}

我几乎整天都在工作,无法解决这个问题。我不明白为什么我们需要分解并设置int = 1.我认为它可能只是

double ans = pow(a, b); //a and b being the 2 numbers the user inputs

2 个答案:

答案 0 :(得分:1)

它非常简单,假设你有2 ^ 3。你和我都同意它与2x2x2相同。你首先将你自己的第二个数字A(第二个数字)复制了多次。现在为你的循环,你想要的第二个数字服务器作为你的计数器AND循环退出条件。像这样的东西

double YourPowerFunction(int a, int b)
{
    int counter = 0;
    double result = 1;

    while (counter < b)
    {
        counter++:
        result = result * a;
    }
    return result;
}

答案 1 :(得分:0)

好的,所以我很确定我找到了答案。结果是ans

的变量
int calc() //function for calculation
{

    //Still not sure how I did this one, after hours of playing around with it
    while (b > 0) //This code is adding a 0 in the result. I can't figure it out
    {
        result = result * a;
        b--;
    }

    return (result);
}

这只是一个简单的解决方案,因为它想在最终结果中添加0。