【问题标题】:array function wrong output数组函数错误输出
【发布时间】:2012-12-10 14:41:02
【问题描述】:

我想要数组元素的平方根,但输出太错误了!!! 你能帮忙纠正我的错误吗??? 如何将数组更改为 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;
    }

【问题讨论】:

  • 你的代码真的没有任何意义。我们也不知道您要做什么或您期望的输出。例如,函数sqrootx 是否应该用平方根替换数组中的每个条目?如果是这样,为什么它会返回一个double
  • 我想知道阵列的力量应该输出什么......?
  • 你必须把每个元素都放在 pow() 中,而不是整个数组指针
  • 如果您没有向我们展示函数代码,您希望我们如何诊断sqrootx 的故障?

标签: c++ arrays function


【解决方案1】:

为了创建一个大小为 100 的数组。只需更改 double balance[5];double balance[100];

话虽如此,手动输入 100 个数字非常困难。 因此,您需要运行一个循环。

从给出的代码来看,让我们列出你的代码中缺少的东西。

  1. 一个循环,用一个数字填充数组中的每个框。
  2. pow 函数本身。 (由于您已声明 math.h ,请使用 sqrt
  3. 另一个循环(迭代)或递归将数组中的原始数字替换为平方根值。
  4. 用于显示所有值均以平方根为根的数组的循环或函数。
  5. 一些预定义的条件,例如“负值”或一些代码来绝对它们。

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    看起来像是一个错字:

    sqr= sqrootx( balance, 5 ) ;
    

    【讨论】:

      【解决方案3】:

      您将数字提高到 5 的幂。平方根是 0.5 的幂。

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

      【讨论】:

      • 我认为调用 sqrt 会更简洁
      猜你喜欢
      • 2016-10-07
      • 1970-01-01
      • 1970-01-01
      • 2020-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-14
      • 2016-06-09
      相关资源
      最近更新 更多