16.下列程序的功能是:寻找并输出11~999之间的数m,它满足m、m2和m3均为回文数。所谓回文数是指各位数字左右对称的整数,例如121、676、94249等。满足上述条件的数如m=11,m2=121,m3=1331皆为回文数。请编写函数int palindromevalue(long n)实现功能:如果是回文数,则函数返回1,反之则返回0。最后,把结果输出到文件OUT.dat中。 【答案】% N, T9 L% V' p" X/ R; b n+ \
int palindromevalue(long n)
- P! g9 y2 f6 a7 a+ H) u( e- D% N$ p { int i, strl, half;. m6 i5 V5 Q N1 O: p P% @, E
char temp[20];* q- W6 s/ y7 f& q9 B2 b% q
ltoa(n, temp, 10);
$ _/ G' \7 } p: g" v% D5 U* i strl = strlen(temp);
- G/ R2 N6 f$ ?, P( q8 X3 g half = strl/2;
$ A$ M7 J/ N4 \8 B1 T: B for (i=0; i= half)* p/ c7 m5 V8 r. n# R
return 1;
; d+ e7 H5 C+ F$ p+ u$ y) O else# C+ m/ W( R; j; j! S
return 0;
9 n T0 R1 O& F g }8 p' Y4 `( d7 l! f* f# }0 K" `
17请补充程序,使得程序能实现以下功能:
# S/ E6 _" X. _0 @. ^ G { 从文件IN.dat中读取200个整数至数组number中,求出奇数的个数cnt1和偶数的个数cnt2以及数组number下标为偶数的元素值的算术平均值ave(保留2位小数)。把结果cnt1、cnt2、ave输出到OUT.dat中。
, i3 M0 r6 ^* I1 \ [, H/ E a 【答案】 Z7 E' y4 j6 L
for (i=0, j=0, cnt1=0, cnt2=0; i>= 4;& h: b" w3 ~ b2 z9 \0 S3 x2 m5 _
string[j] += string[j-1];
3 t/ ]4 P, ^0 P. p }
( M: g0 w6 Y/ K h! s) ~# c string[0] += ch;2 s$ p+ [( B0 B/ U
}
: _0 i0 o7 \0 w$ [ } |