题目内容
已知在文件IN42.DAT中存有N个实数(N<200),函数ReadDat()读取这N个实数并存入数组xx中。请编制程序CalValue(),其功能要求: (1)求出这N个实数的平均值aver。 (2)分别求出这N个实数的整数部分值之和sumint及其小数部分之和sumdec,最后调用函数WriteDat()把所求的结果输出到文件OUT42.DAT中。 注意;部分源程序已给出。 请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。 试题程序: #include<stdio.h> #include<conio.h> #define MAXNUM 200 float xx[MAXNUM]; int N=0; double aver=0.0; double sumint=0.0; double sumdec=0.0; int ReadDat( ); void WriteDat( ); void CalValue void main( ) clrscr( ); if(ReadDat( )) printf ("数据文件IN42.DAT不能打开! \007\n"); return; CalValue ( ); printf ("文件IN42.DAT中共有实数%d个\n", N); printf ("平均值=%.21f\n", aver); printf ("整数部分=%.21f\n", sumint); printf ("小数部分之和=%.21f\n", sumdec); WriteDat( ); int ReadDat() FILE *fp; int j; if((fp=fopen("in42.dat","r"))==NULL) return 1; while(!feof(fp)) fscanf (fp, "%f", &xx [N] ); if (xx[N] >0.001) N++; fclose(fp); return 0; void WriteDat() FILE *fp; fp=fopen("OUT42.DAT","w"); fprintf(fP,"%d\n%.21f\n%.21f\n%.21f\n",N,aver,sumint,sumdec); fclose(fp);
查看答案
搜索结果不匹配?点我反馈
更多问题