したがって、このプログラムでは、ユーザーが入力した一連の数値の標準偏差を出力しようとしています。標準偏差を計算する式は正しい (または必要なだけ正しい) ため、問題はありませんが、プログラムを実行すると、コンソールに結果が出力されるまですべてがうまくいきます。totalStandardDeviation = nan を出力します
とはどういう意味ですか? nan は nil と同じですか? どういうわけか値を失い、それを見つけることができませんでしたか? ご協力いただきありがとうございます。
#include <iostream>
#include <cmath>
using namespace std;
double returnStandardDeviation(double x, int counter);
double total;
int userInput = 1;
int counter = 0;
double x;
double x1;
double x2;
double standardDeviation;
double totalStandardDeviation;
int main(int argc, const char * argv[])
{
cout << "Please enter a list of numbers. When done enter the number 0 \n";
cin >> userInput;
while (userInput != 0) // As long as the user does not enter 0, program accepts more data
{
counter++;
x = userInput;
returnStandardDeviation( x, counter); // send perameters to function
cout << "Please enter next number \n";
cin >> userInput;
}
cout << "The standard deviation of your "
<< counter
<< " numbers is : "
<< returnStandardDeviation(x, counter);
return 0;
}
double returnStandardDeviation(double x, int counter)
{
x1 += pow(x,2);
x2 += x;
totalStandardDeviation = 0;
totalStandardDeviation += (sqrt(counter * x1 - pow(x2,2))) / (counter * (counter - 1));
return totalStandardDeviation;
}