【考點(diǎn)分析】 本題考查對多個(gè)整數(shù)的篩選、統(tǒng)計(jì)以及計(jì)算平均值,考查的知識點(diǎn)只要包括:多位整數(shù)的數(shù)位分解算法,邏輯表達(dá)式,計(jì)算平均值的算法。
【解題思路】 首先通讀題目,得知此題屬于4位數(shù)的篩選題型;其次分析題干要求,本題要求補(bǔ)充main中空白部分,進(jìn)一步分析,可以歸納出3個(gè)關(guān)鍵點(diǎn):關(guān)鍵點(diǎn)1如何找出數(shù)組中最大數(shù)的值并統(tǒng)計(jì)其個(gè)數(shù);關(guān)鍵點(diǎn)2如何通過條件"可以被7或3整除"在數(shù)組中篩選出滿足條件的數(shù);關(guān)鍵點(diǎn)3如何計(jì)算平均值。
接著分析每一步的解決方法,對于關(guān)鍵點(diǎn)1通過循環(huán)使用起泡法找出其中最大的數(shù),同時(shí)統(tǒng)計(jì)其個(gè)數(shù);關(guān)鍵點(diǎn)2通過if判斷結(jié)構(gòu)和邏輯表達(dá)式可以實(shí)現(xiàn);關(guān)鍵點(diǎn)3通過之前找到滿足條件的數(shù)的和及其個(gè)數(shù)計(jì)算出平均值。
【參考答案】
void main()
{
int i,k,cnt,xx[N],max;
float pj;
FILE *fw;
long j=0;
system("CLS");
fw=fopen("out.dat","w");
read_dat(xx);
max=xx[0];
for(i=1,k=0;i { if(xx[i]>max) max=xx[i]; /*求出數(shù)組xx中最大數(shù)max*/ if(xx[i]%3==0 ||xx[i]%7==0) { j+=xx[i]; /*求出數(shù)組xx中值能被3整除或能被7整除的數(shù)的總和*/ k++; } } for(i=0,cnt=0;i if(xx[i]==max) cnt++; /*求出數(shù)組xx中最大數(shù)max的個(gè)數(shù)*/ pj=(float)(j*100/k)/100; /*求出數(shù)組xx中值能被3整除或能被7整除的數(shù)的平均值*/ printf("\n\nmax=%d,cnt=%d,pj=%6.2f\n",max,cnt,pj); fprintf(fw,"%d\n%d\n%6.2f\n",max,cnt,pj); fclose(fw); } 【易錯(cuò)提示】 對數(shù)進(jìn)行篩選時(shí)的邏輯表達(dá)式。 相關(guān)推薦: 2014年計(jì)算機(jī)等級考試過關(guān)技巧
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |