if(qw+bw==sw+gw&& qw+bw==(gw-qw)*10)
{ cnt++; sum+=i; } /*统计满足条件的数的个数并对其求和*/ } }
54.已知在文件IN54.DAT中存有N个(个数<200)实数,函数ReadDat()读取这N个实数并存入数组xx中。请编制函数Calvalue(),其功能要求:(1)求出这N个实数的平均值aver;(2)分别求出这N个实数的整数部分之和sumint以及小数部分之和sumdec,最后调用函数WriteDat()把所求的结果输出到文件OUT54.DAT中。
注意:部分源程序已给出。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 【参考答案】
void Calvalue(void) {
int i;
double x,sum=0;
  for (i=0;i     sumint=sumint+(int)xx[i];     x=xx[i]-(int)xx[i];     sumdec=sumdec+x;     sum=sum+xx[i];   }    aver=sum/N; }   55.已知在文件IN55.DAT中存有若干个(个数<200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。请编制函数Calvalue(),其功能要求:(1)求出文件中共有多少个正整数totNum;(2)求出这些数中的各位数字之和是偶数的数的个数totCnt,以及满足此条件的这些数的算术平均值totPjz,最后调用函数WriteDat()把所求的结果输出到文件OUT55.DAT  注意:部分源程序已给出。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 【参考答案】 void Calvalue(void) {    int i,thou,hun,ten,data;   int ab;    float sum=0;    for(i=0;i     if(xx[i]>0)  totNum++;          /*求正整数的个数*/     else  break;      thou=xx[i]/1000;                 /*求四位数的千位数字*/      hun=xx[i]00/100;             /*求四位数的百位数字*/     ten=xx[i]0/10;                /*求四位数的十位数字*/     data=xx[i];                   /*求四位数的个位数字*/     ab=thou+hun+ten+data;     if (ab%2==0)      { totCnt++; sum=sum+xx[i]; }  /*统计各位数字之和是奇数的个数并累加求和*/   }    totPjz=sum/totCnt;                /*求满足条件的数的平均值*/ }   56.已知在文件IN56.DAT中存有若干个(个数<200)4位数字的正整数,函数ReadDat()是读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求是:(1)求出这个文件中共有多少个正整数totNum。(2)求出这些数中的各位数字之和是奇数的个数totCnt,以及满足此条件的这些数的算术平均值totPjz。最后,调用函数WriteDat()把所有结果输出到文件OUT56.DAT中。  注意:部分源程序已给出。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 【参考答案】 void CalValue(void) {    int i,thou,hun,ten,data,ab;   for(i=0;i     if(!xx[i])  break;      if(xx[i]>0)  totNum++;            /*求正整数的个数*/      thou=xx[i]/1000;                   /*求四位数的千位数字*/     hun=xx[i]00/100;               /*求四位数的百位数字*/     ten=xx[i]0/10;                 /*求四位数的十位数字*/     data=xx[i];                     /*求四位数的个位数字*/     ab=thou+hun+ten+data;     if(ab%2)        { totCnt++; totPjz+=xx[i]; }  /*统计各位数字之和是奇数的个数并累加求和*/    }    totPjz/=totCnt;                     /*求满足条件的数的平均值*/ }   57.已知在文件IN57.DAT中存有若干个(个数<200)4位数字的正整数,函数ReadDat()是读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求是:(1)求出这个文件中共有多少个正整数totNum。(2)求这些数右移一位后,产生的新数是奇数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz。最后调用函数WriteDat()把所有结果输出到文件OUT57.DAT中。  注意:部分源程序已给出。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 【参考答案】  void CalValue(void) {    int i,data;    for(i=0;i     if(!xx[i])  break;      if(xx[i]>0)  totNum++;         /*统计正整数的个数*/     data=xx[i]>>1;                  /*将数右移一位*/      if(data%2)                       /*如果产生的新数是奇数*/     { totCnt++; totPjz+=xx[i]; } /*统计满足条件的数的个数并求和*/   }    totPjz/=totCnt;                   /*计算满足条件的数的平均值*/ }   58.已知在文件IN58.DAT中存有若干个(个数<200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。请编制函数Calvalue(),其功能要求:(1)求出这个文件中共有多少个正整数totnum;(2)求这些数右移1位后,产生的新数是偶数的数的个数totcnt,以及满足此条件的这些数(右移前的值)的算术平均值totpjz,最后调用函数WriteDat()把所求的结果输出到文件OUT58.DAT中。  注意:部分源程序已给出。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 【参考答案】 void Calvalue(void) {    int i,data;    for(i=0;i     if(!xx[i])  break;      if(xx[i]>0)  totNum++;           /*统计正整数的个数*/     data=xx[i]>>1;                    /*将数右移一位*/      if(data%2==0)                     /*如果产生的新数是偶数*/     { totCnt++; totPjz+=xx[i]; }   /*统计满足条件的数的个数并求和*/    }    totPjz/=totCnt;                    /*计算满足条件的数的平均值*/ }   59.请编制函数ReadDat(),实现从文件IN59.DAT中读取1 000个十进制整数到数组xx中;请编制函数Compute()分别计算出xx中偶数的个数even、奇数的个数odd、奇数的平均值ave1、偶数的平均值ave2以及所有偶数的方差totfc的值,最后调用函数WriteDat()把结果输出到OUT59.DAT文件中。 计算方差的公式如下:                           设N为偶数的个数,xx[i]为偶数,ave2为偶数的平均值。  原始数据文件存放的格式是:每行存放10个数,并用逗号隔开(每个数均大于0且小于等 于2 000)。  注意:部分源程序已给出。请勿改动主函数main()和输出数据函数WriteDat()的内容。 【参考答案】  void Compute(void) {    int i, yy[MAX];   for(i=0;i<1000;i++)     if(xx[i]%2==0)        { even++; ave2+=xx[i]; yy[even-1]=xx[i]; }     else        { odd++; ave1+=xx[i]; }    ave1/=odd;        /*求数组xx中所有奇数的平均值*/   ave2/=even;      /*求数组xx中所有偶数的平均值*/   for(i=0;i     totfc+=(yy[i]-ave2)*(yy[i]-ave2)/even;/*计算所有偶数的方差*/ }   60.请编制函数ReadDat(),实现从文件IN60.DAT中读取1 000个十进制整数到数组xx中;请编制函数Compute()分别计算出xx中奇数的个数odd、奇数的平均值ave1、偶数的平均值ave2及所有奇数的方差totfc的值。最后调用函数WriteDat()把结果输出到OUT60.DAT文件中。  计算方差的公式如下:                                 设N为奇数的个数,xx[i]为奇数,ave1为奇数的平均值。  原始数据的存放格式是:每行存放10个数,并用逗号隔开(每个数均大于0且小于等于2 000)。  注意:部分源程序已给出。请勿改动主函数main()和输写函数WriteDat()的内容。 【参考答案】  void Compute(void) {    int i,yy[MAX];   for(i=0;i<1000;i++)     if(xx[i]%2!=0)         { odd++;  ave1+=xx[i];  yy[odd-1]=xx[i]; }     else         { even++;  ave2+=xx[i]; }    ave1/=odd;        /*求数组xx中所有奇数的平均值*/   ave2/=even;       /*求数组xx中所有偶数的平均值*/   for(i=0;i     totfc+=(yy[i]-ave1)*(yy[i]-ave1)/odd;  /*计算所有奇数的方差*/ }   61.请编制函数ReadDat(),实现从文件IN61.DAT中读取1 000个十进制整数到数组xx中;请编制函数Compute(),分别计算出xx中奇数的个数odd、偶数的个数even、平均值aver及