終于走上重拾C++之路了,很激動,希望自己能保持良好的心態,學好它。
看的教材是錢能的《C++程序設計教程》,感覺不錯,點得很透。
其中有這么一題:
定義一個數組,分別為:6,3,7,1,4,8,2,9,11,5。請創建一個向量,把數組的初值賦給它,然后對該向量求標準差(均方差)。
先確實一下算法,求標準差可以這樣:
1、求出平均數;
2、 然后算出每個數和平均數的差的絕對值的平方;
3、平方相加;再開方。
代碼如下:

int arr[]=
{6,3,7,1,4,8,2,9,11,5};
vector<int> list(arr,arr+10);
int pj = 0; //平均數
int count=0; //總數
double pfcount = 0;//平方和
for(int i=0;i<list.size();i++)
count+=list.at(i);
pj=count/list.size();


for(int i=0;i<list.size();i++)
{
int cha = abs(list.at(i)-pj);
cout<<"數"<<(i+1)<<":"<<list.at(i)<<" 差的絕對值:" << cha<<endl;
pfcount+=pow((double)cha,2); //離差平方和
}
pfcount=pfcount/list.size(); //離差平方和平均

cout<<"平均數:"<<pj<<endl;
cout<<"標準差:"<<sqrt(pfcount)<<endl;