【正确答案】void CaiValue(void)
{
int i, x;
for(i=0; i<MAXNUM; i++){
if(xx[i]>0)totNum++;
x=xx[i]>>1;
if(x%2!=0){
totCnt++;
totPjz=totPjz+xx[i];
}
totPjz=totPjz/totCnt;
}
【答案解析】[解析] 此题中要用到对一个数右移一位二进制位,在C语言中,>>运算符就可以完成此功能,它是把xx[i]转换成二进制数后,向右移一位舍掉一个二进制位,再把该二进行制位化成十进制位。注意,题目要求是记录右移后的数为奇数的个数,因此if条件要用右移得到的数进行判断。totPjz是要计算右移前的数的算数平均值,因此要对××进行累加。