如何从数组获得平均值

时间:2014-11-23 07:35:48

标签: c++

尝试获得一些C ++基础但有问题。我需要获得温度数组值的平均值。在这里发布代码。我知道我做错了什么,因为我得错了答案。你能告诉我出了什么问题吗?

#include <iostream>
using namespace std;
int main()
{
    int d = 0, i;
    double avg = 0, sum = 0, Temperature[100];
    // -----------------------------------------
    cin >> d;
    for (i = 1; i <= d; i++)        
    {
        cin >> Temperature[i];
    }
    for (i = 1; i <= d; i++)
    {
        cout << Temperature[i] << endl;  // was Temperatura[i] ?
    }
    for (i = 1; i <= d; i++);
    {
        sum += Temperature[i];
    }
    avg= sum / d;
    cout << "Average: " << avg << " Sum: " << sum << endl;

    system("pause");
    return 0;
}

4 个答案:

答案 0 :(得分:3)

问题是愚蠢错误的结果: -

for (i = 1; i <= d; i++);  << semicolon

从for循环结束中删除分号。

答案 1 :(得分:0)

也许是因为输入数d大于100

#include <iostream>
using namespace std;
int main()
{
    int d = 0, i;
    double avg = 0, sum = 0, *Temperature=0;
    // -----------------------------------------
    cin >> d;
    Temperature=new  double[d];  //<== Use new to allocate array

    for (i = 0; i < d; i++)     //<== Normaly array start at 0       
    {
        cin >> Temperature[i];
    }
    for (i = 0; i < d; i++)
    {
        cout << Temperatura[i] <<endl;
    }
    for (i = 0; i < d; i++);
    {
        sum += Temperature[i];
    }
    average = sum / d;
    cout << "Average: " << avg << " Sum: " << sum << endl;
    if(Temperature!=0)              //<== Free  memory
    {
      delete []Temperature;
    }
    system("pause");
    return 0;
}

答案 2 :(得分:0)

  • 如果您在第一次使用int d;作为输入之前,则不需要初始化d
  • 一旦d作为输入。现在宣布int Temperature[d];,以便如果观察总数超过100,则应该有效。
  • 现在迭代数组,以获取输入和计算总和。 注意 - 数组索引从零而不是一开始。转到d-1
  • for()循环最后没有;

答案 3 :(得分:0)

步骤:

  1. 您声明了Temperatures数组,温度数(您使用'd',但您不需要将其初始化为0,只需读取它)和一个保持温度总和的变量(例如:double) sum = 0)
  2. 在for循环中(对于i = 1; i&lt; = d; i ++ ||对于i = 0; i&lt; d; i ++),您读取温度并增加每个elemens的总和(sum + = Temperatures [i] || sum = sum + Temperatures [i]
  3. 输出:cout&lt;&lt; sum / n;公式:average =(elem1 + elem2 + ... + elem n)/ n