计算机等级考试三级编程解析七
七。其他数学计算
请编译函数READDAT()从文件中读取1000个十进制整数。DAT放入数组XX;然后编译函数COMPUTE()分别计算XX中的奇数、偶数、AVERage ` aver和方差TOTFE,最后调用函数WRITEDAT()将结果输出到OUT。DAT文件。计算方差的公式如下:
原始数据文件的格式为:每行10个数字,用逗号分隔(每个数字大于0小于等于
2000)。
# include
# include
# define max 1000
int xx[MAX],奇数=0,偶数= 0;
double aver=0.0,totfc = 0.0
void WriteDat(void);
int read dat(void)
{
FILE * FP;
if((fp=fopen("in.dat "," r ")= = NULL)返回1;
fclose(FP);
返回0;
}
void Compute(void)
{
}
void main()
{
int I;
for(I = 0;ixx[I]= 0;
if(read Dat())
{ printf("无法打开. dat中的数据文件!\ 007 \ n ");
退货;
}
Compute();
printf(" ODD = % d \ nEVEN = % d \ nAVER = % lf \ nTOTFC = % lf \ n ",ODD,EVEN,AVER,t
otfc);
write dat();
}
void WriteDat(void)
{
FILE * FP;
int I;
fp=fopen("out.dat "," w ");
fprintf(fp," %d\n%d\n%lf\n%lf\n ",odd,even,aver,totfc);
f close(FP);
}
/*注意:*/
int read dat(void)
{
file * FP;
int I;
if((fp=fopen("in.dat "," r ")= = NULL)返回1;
for(I = 0;i{fscanf(fp," %d,",& xx[I]);
if(feof(FP))break;
}
fclose(FP);
返回0;
}
void Compute(void)
{
int I,YY[1000];
for(I = 0;I { aver+= xx[I];
if(xx[I]% 2)
odd++;
else
even++;
}
aver/=(奇数+偶数);
for(I = 0;itotfc+=(xx[I]-aver)*(xx[I]-aver)/(奇数+偶数);
}
0条评论