已知在IN.DAT中存有若干个(个数<200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:1.求出这文件中共有多少个正整数tofNum;2求这些正整数右移1位二进制位后,产生的新数是奇数的数的个数totCnt,以及满足此条件的这些正整数(右移前的值)的算术平均值cotPjz。最后main()函数调用函数WriteDat()把所求的结果输出到文件OUT.DAT中。
注意:部分源程序存放在PROG1.C中。请勿改动数据文件IN.DAT中的任何数据,主函数main()、读函数ReadDat1()和输出函数WriteDat()的内容。
[试题程序]
#include
#define MAXNUM 200
int XX[MAXNUM];
int totNum=0;/*文件INDAT中共有多少个正整数*/
int totCnt=0;/*符合条件的正整数的个数*/
double totPjz=0.0;/*平均值*/
int ReadDat(void);
void WriteDat(void);
void CalValue(void)
void main()
int i;
for(i=0;i<MAXNUM;i++) XX[i]=0;
if (ReadDat())
printf(“数据文件IN.DAT不能打开!\007\n”);
return;
CalValue();
printf(“文件IN.DAT中共有正整数=%d个\n”,totNum);
printf(“符合条件的正整数的个数=%d个\n”,totCnt);
printf(“平均值=%.2lf\n”,totpjz);
WriteDat();
int ReadDat(void)
FILE *fp;
int i=0;
if((fp=fopen("in.dat","r")==NULL)
return 1;
while(!feof(fp))
fscanf(fp,"%d,",&xx[i++]);
fclose(fp);
return 0;
void WriteDat(void)
FILE *fp;
fp=fopen(¨out.dat","W");
fprintf(fP,"%d\n%d\n%.2lf\n",totNum,totCnt,totPjz);
fclose(fp);