【正确答案】
【答案解析】/*循环变量i从0开始,每次增加1,计算奇数的个数odd,偶数的个数even,所有数组元素的和aver*/
int i;
for(i=0; i<MAX; i++)
{
if(xx[i]%2) //如果xx[i]是奇数
odd++; //odd加1
else //否则, xx[i]是偶数
even++; //even加1
aver+=xx[i]; //把所有数组的元素xx[i]累加到变量aver
}
aver/=1000.0;//变量aver除以1000.0得到所有数组元素的算术平均值
/*根据计算方差的公式,计算所有数组元素的方差+/
for(i=0;i<MAX;i++)
totfc+=(xx[i]-aver)*(xx[i]-aver);//把(xx[i]-aver)的平方累加到变量totfc
totfc/=1000.0; //变量totfc除以1000.0得到所有数组元素的方差
[解析] 读取1000个数,奇数个数、偶数个数、平均值及方差。
相对来说更简单一些,通过审题可以发现本题有两个不同点:①求所有数的平均值,此时只需要将数组中所有元素的值累加到变量aver中,最后除以1000(因为数组中有1000个元素)即可得到平均值,参考答案的第8条和第10条语句。②求所有数的方差,可先利用for循环将(xx[i]-aver)的平方累加到变量totfc,然后再除以1000即可得到所有数的方差,参考答案的第11~13条语句。