【考点分析】 本题考查对多个整数的筛选、统计以及计算平均值,考查的知识点只要包括:多位整数的数位分解算法,逻辑表达式,计算平均值的算法。
【解题思路】 首先通读题目,得知此题属于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); } 【易错提示】 对数进行筛选时的逻辑表达式。 相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |