"C语言编程:统计低于平均分的人数及分数"

需积分: 0 0 下载量 81 浏览量 更新于2024-01-19 收藏 263KB DOC 举报
"二级程序编写;通俗易懂,包你过级,考级必备。无往不利。加油、下载、过级;全国计算机等级考试 C 语言――编程题1.m 个人的成绩存放在 score 数组中,请编写函数 fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在 below 所指的数组中。例如,当score 数组中的数据为 10、20、30、40、50、60、70、80、90 时,函数返回的人数应该是 4,below 中的数据应为 10、20、30、40。第一个 for 循环用来计算 score 数组中分数的总和,然后用 aver/=m 求出平均值,第二个循环用来找出小于平均分的元素,并放到数组 below 中,这里要注意 j 的递增方式。" 本题要求编写一个函数fun,该函数的功能是统计低于平均分的人数,并将低于平均分的分数存放在指定的数组below中。具体说明如下: - 输入:一个数组score,内含m个人的成绩。 - 输出:返回低于平均分的人数,并将这些分数存放在数组below中。 例如: 当score数组中的数据为10、20、30、40、50、60、70、80、90时,函数应返回低于平均分的人数4,并将分数10、20、30、40存放在below数组中。 解题思路: 本题需要使用两个循环来实现功能。首先,使用第一个for循环计算出score数组中所有分数的总和。接着,通过除以总人数m得到平均分aver。 然后,使用第二个循环来遍历score数组,找出低于平均分aver的元素,并将这些元素存放在数组below中。需要注意的是,要设置一个变量j,用来表示below数组的索引位置,初始值为0。只有当score数组中的元素小于aver时,才将该元素存放在below[j]位置,并将j自增1。 最后,返回j值即可得到低于平均分的人数。 下面是简单的C语言实现代码: ```c #include <stdio.h> int fun(int score[], int m, int below[]) { int i, j = 0; int sum = 0, aver = 0; // 计算总和 for (i = 0; i < m; i++) { sum += score[i]; } // 计算平均值 aver = sum / m; // 找出低于平均分的元素,并存放在below数组中 for (i = 0; i < m; i++) { if (score[i] < aver) { below[j] = score[i]; j++; } } // 返回低于平均分的人数 return j; } int main() { int score[] = {10, 20, 30, 40, 50, 60, 70, 80, 90}; int below[9]; int count = fun(score, 9, below); printf("低于平均分的人数:%d\n", count); printf("低于平均分的分数为:"); for (int i = 0; i < count; i++) { printf("%d ", below[i]); } printf("\n"); return 0; } ``` 编译运行以上代码,结果如下: ``` 低于平均分的人数:4 低于平均分的分数为:10 20 30 40 ``` 以上是本题的解题思路和示例代码。通过本题的练习,可以加深对C语言中数组和循环的理解,并锻炼编程能力,希望能帮助你顺利通过考级。加油!