若有定义int a[4][4]=1,2,3,4,0,4,6,8,10,1,3,5,7 发布时间:2017-07-22 04:30 │ 来源:www.tikuol.com 题型:填空题 问题: 若有定义int a[4][4]=1,2,3,4,0,4,6,8,10,1,3,5,7,则初始化后,a[1][1]得到的初值是______。
题型:填空题 请编制函数ReadDat()实现从文件IN.DAT中读取1000个十进制整数到数组XX中;请编制函数Compute()分别计算出XX中奇数的个数odd, 奇数的平均值avel,偶数的平均值ave2以及所有奇数的方差totfc的值,最后调用函数WriteDat()把结果输出到OUT.DAT文件中。 计算方差的公式如下: totfc=1/N 设N为奇数的个数,xx[i]为奇数,avel为奇数的平均值。 原始数据文件存放的格式是:每行存放10个数,并用逗号隔开(每个数均大于0且小于等于2000)。 注意:部门源程序已给出。请勿改动主函数main()和输出数据函数WriteDat()的内容。 试题程序: #include<stdio.h> #include<stdlib.h> #include<string.h> #define MAX 1000 int xx[MAX],odd=0,even=0; double avel=0.0,ave2=0.0,totfc=0.0; void WriteDat(void); int ReadDat(void) int i; FILE*fp; if((fp=fopen("IN.DAT","r"))==NULL) return 1; /*********编制函数ReadDat()的部分* ***********/ /********************* ********************* **/ fclose(fp); return 0; void Compute(void) int i,yy[MAX]; for(i=0;i<MAX;i++) yy[i]=0; for(i=0;i<MAX;i++) if(xx[i]%2)∥测试结点i是否是奇数 yy[odd++]=xx[i];∥将结点i存人数组yy中 avel+=xx[i];∥将结点i累加存入avel中 else∥如果结点i不是奇数 even++;∥累加变量even记录偶数数的个数 ave2+=xx[i];∥将xx[i]累加存入ave2中 if(odd==0)avel=0; else avel/=odd;∥计算奇数数的平均数 if(even==0)ave2=0; else ave2/=even;∥计算偶数数的平均数 for(i=0;i<odd;i++) totfc+=(yy[i]=avel)*(yy[i]=avel)/odd; void main() int i; for(i=0;i<MAX;i++)xx[i]=0; if(ReadDat()) printf("数据文件IN.DAT不能打开!\007\n"); return; Compute(); printf("ODD=%d\nAVE1=%f\nAVE2=%f\nTOTFC=%f\n",odd,avel,ave2,totfc); WriteDat(); void WriteDat(void) FILE*fp; int i; fp=fopen("OUT.DAT","w"); fprintf(fp,"%d\n%f\n%f\n%f\n",odd,avel,ave2,totfe); fclose(fp); 查看答案