类型题三:300个数满足条件的求平均值
求满足条件的数的个数、平均值及不满足条件的数的平均 值等,此类也是五题。本处仅给出一个全题,其余题只给出不同 之处。
已知数据文件IN.DAT中存有300个四位数, 并已调用读函数 readDat()把这些数存入数组a中, 请编制一函数jsvalue(),其功 能是: 求出千位数上的数减百位数上的数减十位数上的数减个位 数上的数大于零的个数cnt, 再求出所有满足此条件的四位数平 均值pjz1, 以及所有不满足此条件的四位数平均值pjz2。最后 main()函数调用写函数writeDat()把结果cnt,pjz1,pjz2输出到 OUT.DAT文件。
例如: 9123, 9-1-2-3>0, 则该数满足条件计算平均值pjz1, 且个数cnt=cnt+1。 9812, 9-8-1-2<0, 则该数不满足条件计算平均值pjz2。 程序中已定义数组: a[300], 已定义变量: cnt,pjz1,pjz2
int a[300], cnt=0 ;
double pjz1=0.0, pjz2=0.0 ;
jsvalue()
{/**/
int i,g,s,b,q;
for(i=0; i < 300; i++)
{g=a; /*个位的数字*/
s=a/10; /*十位的数字*/
b=a/100; /*百位的数字*/
q=a/1000; /*千位的数字*/
if(g-q-b-s>0)
{ cnt++; pjz1+=a; }
else pjz2+=a;
if(cnt) pjz1/=cnt;
if(cnt<300) pjz2/=300-cnt;
/**/
}
之二 要求:
求出千位数上的数加百位数上的数等于十位数上的数加个 位数上的数的个数cnt, 再求出所有满足此条件的四位数平均值 pjz1, 以及所有不满足此条件的四位数平均值pjz2。