【问题标题】:function to average in an array在数组中平均的函数
【发布时间】:2013-11-10 07:18:28
【问题描述】:

所以我必须创建一个函数,将用户输入的数字平均到一个数组中,该数组最多可以包含 10 个数字,但可以通过用户输入 -1 在第一个输入和第十个输入之间的任何位置停止

我不确定它是否类似于找到我做过的最高数字

我现在要做的是,但我不知道如何让它平均数字,因为它不会被设定的数字除以

cout << "The average of the results = " << calc_average(score) << "\n";
cout << "The lowest of the results = " << find_lowest(score) << "\n";
system("Pause");


}

double calc_average(double a[])
{




}

double find_highest(double a[])
{
double temp = 0;
for(int i=0;i<10;i++)
{
    if(a[i]>temp)
        temp=a[i];
}
return temp;
 }

编辑:澄清一下,用户可以输入的最大结果数是 10,这就是为什么它会增加到 10。

【问题讨论】:

  • 然后除以... 一个变量?
  • 你的find_highest 不正确,因为'可以在任何地方停止'。你的循环不应该去 10,它应该去用户输入多少个数字。同样,它不是一个固定的数字,而是一个变量。

标签: c++ average


【解决方案1】:

我现在要做的是,但我不知道如何得到它 平均数字,因为它不会被设定的数字除以

您应该通过保持一个计数器来跟踪用户输入了多少数字。

然后你可以用它作为你的除数,并得到平均值。

【讨论】:

    【解决方案2】:

    试试这个代码...

    double calc_average(double a[])
    {
        double fAverage = 0.0f;
    
        double fCount = 0.0f;
        double fTotal = 0.0f;
    
        for(int i=0; i<10; i++)
        {
            if(a[i] < 0)
                break;
    
            fTotal += a[i];
            fCount += 1.0f;
        }
    
        if( fCount > 0.0f )
            fAverage = fTotal / fCount;
    
        return fAverage;
    
    }
    

    【讨论】:

      【解决方案3】:

      您可以将迭代器用作计数器,并在此处使用名为 avg 的变量来存储平均值。最后只返回avg 的值。

      double find_highest(double a[])
      {
          double avg, temp = 0;
          int i;
          for(i=0; i<10; i++)
          {
              if(a[i]>temp)
                  temp += a[i];
          }
          avg = temp/i;
          return avg;
      }
      

      【讨论】:

        【解决方案4】:

        下面的代码应该适合你(尽管我可能在某处有一个错误)。秘诀在于 for 循环中的额外条件。

        double calc_average(double a[])
        {
            int i;
            float sum = 0.0;
            for(i = 0; i < 10 && a[i] > -1; i++)
            {
                sum += a[i];
            }
            if(i > 0)
            {
                return sum / i;
            }
            else
            {
                return 0.0;  /* Technically there is no average in this case. */
            }
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-03-19
          • 2022-11-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-12-15
          相关资源
          最近更新 更多