数,同时统计其个数;关键点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<N;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<N;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);
}
【易错提示】 对数进行筛选时的逻辑表达式。
19. 【考点分析】 本题考查对字符数组中字符计算和替换。考查的知识点主要包括:字符串数组的访问,字符ASCII码的算术运算,if判断结构以及逻辑表达式。
【解题思路】 此题属于字符计算问题。分析题干要求,可以归纳出3个关键点:关键点1如何对字符数组的元素逐个访问;关键点2如何根据给出的函数替代关系"f(p)=p*11mod256"对字符进行计算;关键点3根据条件(本题为"小于等于32或对应的字符是大写字母")对计算结果进行判断,并分别对满足与不满足条件的情况进行处理。