问答题 请编制函数ReadDat(),实现从文件IN.DAT中读取1000个十进制整数到数组xx中;请编制函数Compute(),分别计算出XX中偶数的个数even,奇数的平均值ave1,偶数的平均值ave2以及方差totfc的值,最后调用函数WriteDat()把结果输出到OUT.DAT文件中。
计算方差的公式如下:
【正确答案】for(i=1;i<MAX;i++)
{
fscanf(fp,"%d,",&Lxx[i]);//读取文件中的数据存入变量xx[i]中
if((i+1)%10==0)//每行存10个数
fscanf(fp," ");
}
//读取行后的换行符
【答案解析】[解析] 本题考查文件的操作、奇偶判断和数学公式的计算。函数ReadDat的作用是从文件中读取数据存入数组xx中,因为数据存入文件的格式是每个数据被逗号隔开,所以fscanf(fp,"%d,",&xx[i])语句中的字符串"%d,"要加入逗号。函数Compute的作用是计算方差,思路是首先顺序读取数组xx中的结点,若是偶数则累加存入ave2,个数存入even,若不是偶数(即为奇数)则累加结果存入ave1,个数存入odd。然后计算奇数和偶数的平均数,利用循环结构依次读取存放偶数的数组yy,计算方差totfc。