计算机三级上机考试南开100题最新版
题目26:已知在文件in.dat中存有若干个(个数<200)四位数字的正整数,函数readdat()读取这若干个正整数并存入数组xx中。请编制函数calvalue(),其功能要求:1、求出这文件中共有多少个正整数totnum;2、求这些数右移1位后,产生的新数是偶数的数的个数totcnt,以及满足此条件的这些数(右移前的值)的算术平均值totpjz,最后调用函数writedat()把所求的结果输出到文件out.dat中。
注意:部分源程序已给出。
请勿改动主函数main()、读数据函数readdat()和输出数据函数writedat()的内容。
----------------------------
void CalValue(void) /*标准答案*/
{int I,data;
for(I=0;I<MAXNUM;I++)
{if(!xx[I]) break;
if(xx[I]>0) totNum++;
data=xx[I]>>1;
if (data%2==0){totCnt++;totPjz+=xx[I];}
}
totPjz/=totCnt;
}
或者:
void Calvalue(void)
{ int i,k,a,b,c,d;
for(i=0;i<MAXNUM;i++) if(xx[i]) totNum++;
for(i=0;i<totNum;i++)
{ k=xx[i]>>1;
if(k%2==0)
{ totCnt++;
totPjz+=xx[i]; } }
totPjz/=totCnt;
}