第19套试题答案及详解
【审题分析】分析题目可知,题中需要解决的问题就是实现evenvalue函数的功能问题,而 evenvalue函数的功能是:统计满足“四位数每位上的数字均是0、2、4、6或8”条件的数字个数count,并把这些四位数按从大到小的顺序存入数组b中。因此本题的关键在于如何判断一个四位数的每位数都满足条件,之后就可以通过一个for循环来对这200个数逐个判断。
【解题思路】解答本题可分为以下4个步骤:
第1步:分解出这个四位数的每位数字。木题用a[i]除以1000得到a[i]的千位上的数字,然后存入bb[O](这里要定义一个数组bb[4]);用a[i]对1000求余数再除以100得到a[i]百位上的数字存入bb[1];用a[i]对100求余数再除以10得到a[i]十位上的数字存入bb[2];用a[i]埘10求余得到a[i]的个位上的数字,然后存入bb[3],这样数组bb[4]就存入了a[i]的每位上的数字。
第2步:判断每位数字是否为“0或2或4或6或8”。这里我们利用循环语句对数组bb[4]中的各个元素对2求余,如果每个元素的余数为0,则说明该元素的每位数字均是0或2或4或6或8,则设簧flag为1(这里要定义一个变量flag),否则设置flag为0。
第3步:将符合条件的数存入数组b[count]中。这里只要对flag进行判断即可,即如果flag的值为1,则说明a[i]符位卜的数字均是0或2或4或6或8。把a[i]的值赋给数组b[count],变量count加1。在第一个for语句执行完成后,就得到了200个四位数中所有符合条件的四位数。
第4步:执行第二个for语句对数组b的各元素进行从大到小的排序即可。
【参考答案】
【易错分析】利用求余运算得到四位数各位上的数字。
【考点链接】求余运算、for循环语句、数组的排序问题。
责任编辑:小草