【考點分析】 本題考查對多個整數(shù)的右移、統(tǒng)計以及求平均值?疾榈闹R點主要包括:位移算法,邏輯表達式,求平均值的算法。
【解題思路】 本題是數(shù)學類題。本題的解題思路是:首先利用一個for循環(huán)來依次從數(shù)組中取得各數(shù),由于題目要求數(shù)組中正整數(shù)的個數(shù),如果取得的數(shù)大于零,這時就給變量totNum(正整數(shù)的個數(shù))累加1,然后把該正整數(shù)右移一位后的結果臨時保存在變量data中,再判斷產生的新數(shù)是否是偶數(shù)。如果是,就給變量totCnt(符合判斷條件的正整數(shù)個數(shù))累加1,并把原數(shù)的值累加到變量totPjz中,當所有符合判斷條件的數(shù)都被找出后,再對totPjz求平均值。
【參考答案】
void CalValue(void)
{ int i; /*定義循環(huán)控制變量*/
int data; /*用于保存處理后產生的新數(shù)*/
for(i=0;i<200;i++) /*逐個取數(shù)組xx中的數(shù)進行統(tǒng)計*/
if(xx[i]>0) /*判斷是否正整數(shù)*/
{
totNum++; /*統(tǒng)計正整數(shù)的個數(shù)*/
data=xx[i]>>1; /*將數(shù)右移一位*/
if(data%2==0) /*如果產生的新數(shù)是偶數(shù)*/
{
totCnt++; /*統(tǒng)計這些數(shù)的個數(shù)*/
totPjz+=xx[i]; /*并將滿足條件的原數(shù)求和*/
}
}
totPjz/=totCnt; /*求滿足條件的這些數(shù)(右移前的值)的算術平均值*/
}
【易錯提示】 位移運算表達式的使用。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |