[英]C++ calculate average and standard deviation
我在這個程序中詢問用戶要輸入多少個值,詢問這些值並將它們放入向量中。 然后,我需要計算平均值和標准偏差。 我有平均值部分,但似乎出了點問題,我得到了錯誤的平均值。 而且我不太確定如何開始使用標准偏差部分。
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
int main()
{
// Create vector
vector<double> values;
// Declare variables
double count;
double value;
double average;
double stdDev;
// Prompt user and get the number of values
cout << "How many values will you enter?\n";
cin >> count;
// Get the values from user and calculate average
for( double i = 1; i<= count; i++)
{
cin >> value;
values.push_back(value);
average+=values[i];
}
cout << average/count << '\n';
//Calculate standard deviation
return 0;
}
任何幫助表示贊賞。
使用double average = 0;
而不是double average;
的double average;
並在循環內使用values[i-1]
而不是values[i]
。
為什么?
您聲明了平均值,但尚未初始化。 為此,它具有在代碼執行之前未知的值。 當您將value[i]
與average
相加時, average
就在其中。 為此,您得到錯誤的輸出。 您只需要添加所有value[i]
。 因此,將average
初始化為0。
向量索引是基於0的。 因此,插入到向量中的第n個元素將位於第[n-1]個位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.