計算機等級考試三級編程解析七
七。其他數學計算
請編譯函數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條評論