2012-12-10 45 views
-5

我想要数组的元素的平方根,但输出是错误的! 你能帮我纠正我的错误吗? 我如何将数组更改为100?阵列函数错误输出

#include <math.h> 
    #include <iostream> 
    using namespace std; 

    // function declaration: 
    double sqrootx(int arr[], int size); 

    int main() 
    { 
     // an int array with 5 elements. 
     double balance[5] = {1000, 2, 3, 17, 50}; 
     double sqr; 

     // pass pointer to the array as an argument. 
     sqr= pow(balance, 5) ; 

     // output the returned value 
     cout << " result" << sqr << endl; 

     return 0; 
    } 
+1

你的代码真的没有任何意义。我们也不知道你想要做什么或者你期望的输出。例如,函数'sqrootx'应该用它的平方根替换数组中的每个条目?如果是这样,为什么它会返回一个'double'? –

+0

我想知道阵列的功率应该输出什么......? – shift66

+0

你必须把pow()中的每个元素都放在整个数组指针上 –

回答

0

您正在将您的数字提高到5的幂。平方根是.5的幂。

for (int i = 0; i < 5; i++) { 
    sqr = pow(balance[i], .5); 
    cout << " result" << sqr << endl; 
} 
+2

我认为这将是一个更简洁的方式来调用sqrt – Uflex

1

看起来像一个错字:

sqr= sqrootx(balance, 5) ; 
2

为了创建一个大小100的数组简单地改变 double balance[5];double balance[100];

这就是说,它很难进入100个数字,手动。 因此你需要运行一个LOOP。

从给出的代码判断,可以列出代码中缺少的东西。

  1. 一个填满每个框中输入您的阵列与一些英寸
  2. pow函数本身。 (因为您声明了math.h,请使用sqrt
  3. 另一个循环(迭代)或递归,以平方根值替换数组中的原始数字。
  4. 循环或函数display具有所有平方根值的数组。
  5. 一些预定义的条件,如“负值”或一些代码绝对他们。

希望这会有所帮助。