问题 多项选择题

fclose (fp);

答案

参考答案:
void CalValue(void)
{
int i, data;
for (i=0; i〈MAXNUM; i++)
{
if(!xx[i])
continue; /*如果当前数为0, 则结束本次循环,取下一个数*/
if (xx [i] >0)
totNum++; /*统计正整数的个数*/
data=xx [i] >>A; /*将数右移一位*/
if (data% B==0) /*如果右移A位后,产生的新数是偶数*/
{
totCnt++;
totPj z+=xx [i];
} /*统计这些数的个数,并将满足条件的原数求和*/
}
totPjz/=totCnt; /*求满足条件的这些数(右移前的值)的算术平均值*/
}

解析: 本题的解题思路是首先利用一个for循环来依次从数组中取得各数,由于题目要求数组中正整数的个数,因此,零不做任何处理,接着去取下一个数。只要某数大于零,则该数一定是正整数,这时就给变量totNum(正整数的个数)累加1,之后把该正整数右移一位后的结果临时保存在变量data中,再对这个临时变量进行是否偶数的判断。如果该临时变量中保存的值是偶数,则表明原数符合条件,就给变量 totCnt(符合判断条件的正整数个数)累加1,并把当前的变量data右移前的原数的值累加到变量totPjz中,当所有符合判断条件的数都被找出后,再对totPjz进行求平均值的计算。

综合
多项选择题