2012-12-10 43 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. 一些預定義的條件,如「負值」或一些代碼絕對他們。

希望這會有所幫助。