int totNum = 0 ; /* 文件IN.DAT中共有多少个正整数 */
2 E w W- e7 {* M( @& j3 T! Gint totCnt = 0 ; /* 符合条件的正整数的个数 */
3 O0 ^1 I: d) a# {; Idouble totPjz = 0.0 ; /* 平均值 */9 G9 Q( v* ^3 e: h( u" F
int ReadDat(void) ;
4 G9 V% s. A4 }- V' ?3 P) g2 ~void WriteDat(void) ; O# f! p3 J- K9 A5 f! w% f
void CalValue(void)3 N, ]5 q* k& A8 U: S# m% l
{
8 J- U. H+ ~3 w- `. j) Rint i, n;4 C: F1 ~+ _, c" j2 c, z
long cnt = 0 ;8 v8 G! M; k3 t' j% h9 l& i
for(i = 0 ; i 《 MAXNUM ; i++){$ G: K4 t8 H5 U0 Y' z
if(xx[i] 》 0){/*是正整数*/7 h& q. [- G8 N* M9 J; J
totNum++ ;/*计数*/
. r! h8 t" V, E: r' s( [0 [8 A/*求各位之和*/" d7 y, ?& u1 C, a
n = xx[i]/1000 + (xx[i]%1000)/100 + (xx[i]%100)/10 + xx[i]%10;
; Q. B$ R0 \$ X' L$ hif( n&1 ){/*是奇数*/) e3 G0 U" m2 U3 s2 K5 G* n
totCnt++ ;/*统计个数*/
7 o1 D) t0 {2 B, o6 f6 |& fcnt += xx[i] ;/*计算累加和*/# F2 J- @1 d" a @5 R
}7 u" R O1 A. b3 v5 y. c
}
* i% T9 ~, x; ?}- u: X7 @2 O& D* E& V
totPjz = (double) cnt / totCnt ;/*计算平均值*/" K/ k/ L" ~# \4 F
}
# P/ A K9 l, c" y; {void main()
5 d+ E1 h5 M% D0 r5 h{
: g# m8 f* X; n7 g" n) Tint i ;, F4 A1 u3 C0 O y5 f
clrscr() ;
3 E- j! [5 A$ E( z kfor(i = 0 ; i 《 MAXNUM ; i++) xx[i] = 0 ;9 K3 @0 @0 ^, o! a/ P4 M Q( m
if(ReadDat()) {$ U- s; Z+ Y6 L8 ^3 a4 |
printf(数据文件IN.DAT不能打开!\007\n) ;/ b9 t4 C$ A9 ^% t% P
return ;/ k0 h& @+ p6 i# K
}9 K, Z) M! b# M- I! A
CalValue() ;# l6 n/ ?& Y3 Z
printf(文件IN.DAT中共有正整数=%d个\n, totNum) ;
% y6 f, ~+ _/ c' w# ~) D* Rprintf(符合条件的正整数的个数=%d个\n, totCnt) ;
+ t- ]+ ^# v4 _7 Q! g! R! Uprintf(平均值=%.2lf\n, totPjz) ;: Q, O& H+ t9 E; F3 }; J
WriteDat() ;
* X3 S+ j. Y2 l O$ L2 I}
8 Z# j. V+ y2 X: t6 r1 y+ Uint ReadDat(void)( c6 h4 F$ ?, c, c h+ J H; j- C
{
/ K2 A+ J- r2 P# i7 `' ~FILE *fp ;
8 `" E, N& i9 ?8 U. k. xint i = 0 ;) f4 k- [" y% k* \/ q" j1 y( P
if((fp = fopen(in.dat, r)) == NULL) return 1 ;7 c o% e& Y( `" s
while(!feof(fp)) { |