我在尝试计算涉及数组的总和和平均值时遇到问题

I'm having trouble trying to calculate the sum and average involving an array

本文关键字:平均值 问题 遇到 数组 计算      更新时间:2023-10-16

我正在尝试计算某些值的总和和平均值,例如:

值列表:1.0 2.0 3.0 4.0

然后,在我输入-1.0的哨兵值后,它计算出2.5的平均值。但是,我最终得到了长的负数(-9255963134931 ...)。我是阵列的新手,并且对如何获得所需的输出感到困惑。任何帮助都将受到赞赏。(如何使用else语句找到中间值?)

#include <iostream>
#include<iomanip>
using namespace std;
int main()
{
    int i, count=0;
    double scores [10];
    double value;
    double sum=0.0;
    cout << "Author: J. Soton";
    cout << fixed << showpoint << setprecision(1);
    cout<<"Input -1.0 when you are ready to stop."<<endl;
    cout<<"Input a value: ";
    cin>>value;
    while(value!= -1.0 && count<10) {
        scores [count] = value;
        count = count + 1;
        cout<<"Input a value: ";
        cin>> value;
    }
    cout<<"nYou entered "<<count<<" values"<<endl;

    for(i=0; i<count; i++) {
        cout << setw(6) << scores[i];
        sum= value+scores[count];
        cout << "nnThe average of the values is:" << sum << endl;
    }
    return 0;
}

scores[count]将是一个垃圾值,因为count是10点。

我认为您想要的是

sum += scores[i];

然后平均将是(循环结束后)

sum / count

您在最终循环中需要这样的东西:

for (i=0; i<count; i++)
{ 
    cout<<setw(6)<< scores[i];
    sum += scores[i];
}
cout<<"nnThe average of the values is:"<< (sum / count) <<endl;

因此,您通过添加每个score[i]来累积sum,最后,将sum除以count以给出平均值。

我相信sum/count会更适合您打算做的事情。

尝试添加

cout<<"nnThe average of the values is:"<< (sum / count) <<endl;

for循环后,因此平均值将得到正确计算,并且仅一次。