【正确答案】
【答案解析】int i;
for(i=0; i <MAX; i++)
if(xx[i]%2)
{
odd++j
avel+=xx[i];
}
else
{
even++;
ave2+=xx[i];
}
ave1/=1.0*odd;
ave2/=1.0*even;
/*根据方差的计算公式计算所有奇数的方差*/
for(i=0; i<MAX; i++)
{
if(xx[i]%2) //如果xx[i]是奇数
totfc+=(xx[i]-ave1)*(xx[i]-ave1); //把(xx[i]-ave1)的平方累加到变量totfc
}
totfc/=1.0*odd; //变量totfc除以奇数的个数odd,得到所有奇数的方差
[解析] 读取1000个数,奇数个数、平均值及方差,偶数个数及平均值。
通过审题可以发现本题仅一个不同点,即本题中要求计算的是奇数的方差,参考答案的第15~20条语句。另外,本题给出的原程序中已经定义了odd,因此在答案程序中不需要再次定义该变量。