【问题标题】:What argument passed?通过了什么论据?
【发布时间】:2014-12-09 17:47:20
【问题描述】:

我正在学习C++ language,但是对一件小事很困惑,那就是 下面我放了一些制作整数平方的代码。但我不了解xraiseToPow 函数中的处理。这里double x 是一个参数,它从调用函数中获取值并在for 循环中传递给x。那么它是如何对从x 传递的整数求平方的。请指导我。

#include <iostream>
using namespace std;

double raiseToPow(double x, int power){
   double result;
   result = 1.0;
   for (int i = 1; i <= power; i++)
   {
        result *= x;
   }
        return (result);
   }
 main()
   {
   double x;
   int i;
   cout << "Enter the Number: ";
   cin >> x;
   cout << "Enter the Power: ";
   cin >> i;
   cout << x << "Raise to power " << i << " is equal to " << raiseToPow(x , i);

   }

【问题讨论】:

  • 你明白什么是幂运算吗?
  • 是的,我认识 Ignacio Vazquez-Abrams。但我实际上对参数传递的价值感到困惑?我不确定它正在传递什么,是谁以及为什么这样做.. :(
  • @Grzegorz Szpetkowski 不管它是什么......但我只是在询问解决方案,对理解基本编程技能帮助不大......我必须完成我在这件事上的学习任务
  • 取幂函数定义为 F(x, p) = x^p。对?所以 x 和 p 是传递的参数,而 F(x,p) 是返回值。那么问题是什么?
  • @Eugene Sh.例如,我在 main() 中输入 x = 2 的值。它传入 raiseToPow 函数,并且 x 赋值为 2。所以当它乘以结果时,答案是否会是“1.0 * 2”,答案将是 2。所以当循环再次运行时,它将再次乘以 1.0是结果和停止。那么它是如何返回为 4 的呢?

标签: c++ function parameters arguments double


【解决方案1】:

double x 是幂 xpower 的底。

函数使用定义 xpower 是 1 乘以 x 幂次。因此 23 是 1*2*2*2 而 45 是 1*4*4*4*4*4。所以double result 设置为 1,然后 for 循环执行 power times,每次将 result 乘以 x 并将其存储回 result

【讨论】:

    【解决方案2】:

    尽管这是 C++,而不是 C,但逻辑是相同的。 你传入一个数字(x)及其指数(幂)。 x 的值乘以“幂”倍。 例如,如果您想知道 2 的 3 次幂的值,您可以将 2, 3 传递给函数 raiseToPow

    声明

        result*=x 
    

    相同
        result = x*result. 
    

    因此,第一次通过循环时,结果将只是 x 的值(在本例中为 2)。第二次通过循环,result*=x 将 x 的值(即 2)乘以存储在 result 中的值(现在也是 2)。第三次也是最后一次循环,result *=x 将 x 乘以存储在 result 中的值(现在是 4)。

    2^3=8的值,也就是变量result中存储的值,所以调用raiseToPow(2,3)返回值8。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-07
      • 2016-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-18
      • 2016-03-20
      • 2020-04-16
      相关资源
      最近更新 更多