【考點分析】 本題考查對多個整數的篩選、統計以及計算平均值,考查的知識點只要包括:多位整數的數位分解算法,邏輯表達式,計算平均值的算法。
【解題思路】 首先通讀題目,得知此題屬于4位數的篩選題型;其次分析題干要求,本題要求補充main中空白部分,進一步分析,可以歸納出3個關鍵點:關鍵點1如何找出數組中最大數的值并統計其個數;關鍵點2如何通過條件"可以被7或3整除"在數組中篩選出滿足條件的數;關鍵點3如何計算平均值。
接著分析每一步的解決方法,對于關鍵點1通過循環使用起泡法找出其中最大的數,同時統計其個數;關鍵點2通過if判斷結構和邏輯表達式可以實現;關鍵點3通過之前找到滿足條件的數的和及其個數計算出平均值。
【參考答案】
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]; /*求出數組xx中最大數max*/ if(xx[i]%3==0 ||xx[i]%7==0) { j+=xx[i]; /*求出數組xx中值能被3整除或能被7整除的數的總和*/ k++; } } for(i=0,cnt=0;i if(xx[i]==max) cnt++; /*求出數組xx中最大數max的個數*/ pj=(float)(j*100/k)/100; /*求出數組xx中值能被3整除或能被7整除的數的平均值*/ 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); } 【易錯提示】 對數進行篩選時的邏輯表達式。 相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |