大家我來創建一個程序,讀取在包含數字的輸入文件,然後使用以下方法找到的標準偏差所需要:標準偏差方案與While循環CPP/C++
sqrt((x1 - mu)^2 + (x2 - mu)^2 + (x3 - mu)^2 + (x4 - mu)^2)/mu
的x的數字等於讀入的數字,mu等於平均值。我在這樣做時遇到了問題,因爲我不知道如何爲從while循環中的輸入文件讀入的值設置不同的變量(x1,x2,x3,x4)。另外需要注意的是,我們應該先讀取第一位數字,然後再讀取第三位數字。這是我到目前爲止有:
fin.open(FileName.c_str());
if (fin.fail())
{
cout <<"Bad file name or location.\n" ;
exit(0);
}
fin >> X;
first_score = X;
Counter = 0, Sum=0;
while (!fin.eof())
{
Counter++;
if (Counter%3==0)
{
fin >> X;
Sum += X;
Counter++;
Counter2 ++ ;
Avg = (Sum+first_score)/(Counter2+1);
deviation = pow((X-Avg),2);
sum_of_deviations += deviation;
}
fin >> Score;
}
quotient_of_deviations = sum_of_deviations/Counter2;
standard_dev2 = sqrt(quotient_of_deviations);
fin.close();
我知道這個代碼是邏輯上不正確,因爲我從每x值減去一個不同的平均。有人知道我可以在每次while循環運行時將while循環中的X分配給一個新變量嗎?如果我能做到這一點,那麼我將能夠通過循環外的相同平均值來減去每個x值。我希望我解釋得很好,以便你們能理解我的問題。如果沒有,我會很樂意解釋更多。在此先感謝您的時間。
ahhh雖然你的方法可能有效,但我們的班級還沒有碰到數組,所以我不知道它們是如何工作的,所以我應該避開它們。有沒有使用數組的方法?感謝您的時間,對不起,您的方法不是我所期待的。 – coolioschmoolio
你只有四個元素對嗎? – nitinsh99
它應該處理未知數量的數字,因爲我正在從輸入文件中讀取它們。 – coolioschmoolio