C语言程序:四位数条件筛选与排序

需积分: 9 25 下载量 73 浏览量 更新于2024-12-02 收藏 32KB DOC 举报
"该资源是南开大学C语言课程的一份上机练习题目集,主要针对计算机等级考试的备考者。包含三个问题:1) 个十百千位加减并大小排序问题;2) 个十百千重新排列,符合条件的数大小排序问题;3) 求符合条件的数的总和和平均值问题。每个问题都涉及数组操作、条件判断和排序算法。" 1. **个十百千位加减并大小排序问题**: 这个问题要求找出所有四位数(假设为a[i]),其个位数减去千位数、百位数和十位数之和大于零的情况,并将这些数存储到数组b中。之后对数组b进行降序排序。实现时,首先遍历数组a,用`a[i]%10 - a[i]/1000 - a[i]/100%10 - a[i]/10%10`计算差值,如果大于0,则将该四位数添加到数组b中。然后使用冒泡排序方法对数组b进行排序,确保b中的数从大到小排列。 2. **个十百千重新排列,符合条件的数大小排序问题**: 题目要求组合新的十位数ab和cd,其中ab由原四位数的千位和十位组成,cd由个位和百位组成。条件是ab大于cd,ab为偶数且能被5整除,cd为奇数,且两者的十位数字不为零。同样,满足条件的数将存储在数组b中并进行排序。这里遍历数组a,检查每个数是否满足条件,然后将其添加到数组b,最后再次使用冒泡排序进行排序。 3. **求符合条件的数的总和和平均值问题**: 题目要求找出所有四位数中,千位减百位、百位减十位和十位减个位的结果大于零的个数(cnt),并计算这些数的平均值(pjz1)。同时,还需要计算不满足条件的数的平均值(pjz2)。这需要对整个数组a进行遍历,计算每个数的差值,并根据结果更新cnt,累加满足条件的数的总和,以及不满足条件的数的总和。计算平均值时,分别除以满足条件的个数和总数即可。 以上三个问题都涉及到基础的C语言编程技能,包括变量操作、条件判断(if语句)、循环遍历(for循环)、数组操作以及简单的数学运算。此外,排序算法(冒泡排序)也是解决问题的关键。对于计算机等级考试的考生来说,理解和掌握这些问题的解法有助于提高他们在数值处理和逻辑思维方面的能力。