欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

函数ReadDat()实现从文件IN.dat中读取1000个十进制整数到数组xx中;请编写函数 Compute()分别计算

时间:2017-09-18

函数ReadDat()实现从文件IN.dat中读取1000个十进制整数到数组xx中;请编写函数 Compute()分别计算出数组xx中奇数的个数odd、偶数的个数even,以及所有数的平均值aver和方差totfc的值。最后调用函数WriteDat(),把结果输出到OUT. dat文件中。


计算方差的公式如下:



原始数据文件存放的格式是:每行存放10个数(每个数均大于0且小于等于2000),并用逗号隔开。


注意:部分源程序已经给出。请勿改动主函数main()、读函数ReadDat()和输出数据函数 WriteDat()的内容。


include <stdio. h>


include <stdlib. h>


include <string. h>


define MAX 1000


int xx[MAX], odd = 0, even = 0;


double aver = 0.0, totfc = 0.0;


void WriteDat(void);


int ReadDat(void)


{ FILE *fp;


int i, j;


if ((fp = fopen("IN. dat", "r")) == NULL)


return 1;


for (i=0; i<100; i++)


{ for (j=0; j<10; j++)


fscanf(fp, "%d,", &xx[i*10+j]);


fscanf(fp, "\n");


if (feof(fp))


break;


}


fclose(fp);


return 0;


}


void Compute(void)


{


}


void main ()


{ int i;


for (i=0; i<MAX; i++)


xx[i] = 0;


if (ReadDat())


{


printf (" 数据文件 IN. dar 不能打开! \007\n");


return;


}


Compute ( );


printf("odd=%d\neven=%d\naver=%f\ntotfc=%f\n", odd, even, aver, totfc);


WriteDat ();


}


void WriteDat(void)


{ FILE *fp;


fp = fopen("OUT.dat", "w");


fprintf(fp, "%d\n%d\n%f\n%f\n", odd, even, aver, totfc);


fclose (fp);


}



答案说明:本题目答案来自网络整理或转载,最终答案请以官网为准。


答 案:void Compute (void){ int i;for (i=0; i1000; i++){ if (xx [i] %2) odd++; else even++; aver = aver+ xx[i];}aver /= MAX;for (i=0; i1000; i++) totfc += (xx[i]-aver)*(xx[i]-aver)/MAX;}[解题思路] 对数组xx[i]中的1000个整数逐个进行扫描处理如果xx[i]对2的余数为 1则xx[i]为奇数变量odd加1;否则xx[i]为偶数变量even加1。把xx[i]的值与变量aver相加存入变量aver中。退出循环时变量aver的值除以MAX就得到平均值。最后在for循环语句中根据方差的公式求出所有数的方差。
void Compute (void){ int i;for (i=0; i1000; i++){ if (xx [i] %2) odd++; else even++; aver = aver+ xx[i];}aver /= MAX;for (i=0; i1000; i++) totfc += (xx[i]-aver)*(xx[i]-aver)/MAX;}[解题思路] 对数组xx[i]中的1000个整数逐个进行扫描处理,如果xx[i]对2的余数为 1,则xx[i]为奇数,变量odd加1;否则xx[i]为偶数,变量even加1。把xx[i]的值与变量aver相加存入变量aver中。退出循环时,变量aver的值除以MAX就得到平均值。最后在for循环语句中根据方差的公式求出所有数的方差。
相关推荐

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。