已知在文件IN65.DAT中存有若干个(个数<200)4位数字的正整数,函数ReadDat()是读取这若干个正整数
已知在文件IN65.DAT中存有若干个(个数<200)4位数字的正整数,函数ReadDat()是读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求是: (1)求出这个文件中共有多少个正整数totNum。 (2)求出这些数中的各位数字之和是奇数的个数totCnt,以及满足此条件的这些数的算术平均值totPjz。最后调用函数WriteDat()把所有结果输出到文件 OUT65.DAT中。
注意:部分源程序已给出。
请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
试题程序:
include<stdio. h>
include<conio. h>
define MAXNUM 200
int xx [MAXNUM];
int totNum=0;
int totCnt=0;
double totPjz=0.0;
int ReadDat (void);
void WriteDat (void)
void CalValue (void)
{
void main ()
{
int i;
clrscr ();
for (i=0; i<MAXNUM; i++ )
xx[i]=0;
if (ReadDat () )
{
printf ("数据文件IN65.DAT不能打开! \007\")
return;
}
CalValue ();
printf ("文件IN65.DAT中共有正整数=%d个\n",totNum);
printf ("符合条件的正整数的个数=%d个\n", totCnt)
printf ("平均值=%. 21f\n", totPjz);
WriteDat ();
}
int ReadDat (void)
{
FILE *fp;
int i=0;
if ((fp= fopen ("IN65. DAT", "r" ) ) ==NULL)
return 1;
while (! feof (fp))
{
fscanf (fp, "%d", &xx [i++] );
}
fclose (fp);
return 0;
}
void WriteDat (void)
{
FILE *fp;
fp=fopen ("OUT65. DAT", "w" );
fprint f (fp, "%d\n%d\n%. 21f\n", totNum, totCnt,totPjz);
fclose (fp);
}