C语言写程序:M个人的成绩存放在score数组中,将低于平均分的分数放在below所指的数组中。 例如,当score数组中的数据为10、20、30、40、50、60、70、80、90时,below中的数据应是10、20、30、40。
时间: 2024-10-24 15:14:54 浏览: 25
在C语言中,你可以通过以下步骤来实现这个功能:
1. 首先,计算所有成绩的平均分(average)。可以使用数组长度和总和来完成这一步。
```c
double average = (double)(sum(score, M) / M);
```
这里`sum(score, M)`是一个辅助函数,用于求数组中元素的总和。
2. 然后遍历`score`数组,如果当前元素小于平均分,就将其放入`below`数组中。
```c
int below[M] = {0}; // 初始化below数组
for (int i = 0; i < M; i++) {
if (score[i] < average) {
below[current_index++] = score[i]; // current_index记录below数组的插入位置
}
}
```
注意需要维护一个`current_index`变量来追踪`below`数组的当前位置。
3. 最后,`below`数组将包含所有低于平均分的成绩。
完整示例代码:
```c
#include <stdio.h>
// 辅助函数,返回数组元素的总和
double sum(int arr[], int n) {
double total = 0;
for (int i = 0; i < n; i++) {
total += arr[i];
}
return total;
}
void get_below_average(int score[], int M, int below[]) {
double average = (double)(sum(score, M) / M);
int current_index = 0;
for (int i = 0; i < M; i++) {
if (score[i] < average) {
below[current_index++] = score[i];
}
}
}
int main() {
int score[] = {10, 20, 30, 40, 50, 60, 70, 80, 90};
int M = sizeof(score) / sizeof(score[0]);
int below[M];
get_below_average(score, M, below);
// 打印结果
printf("Below average scores:\n");
for (int i = 0; i < current_index; i++) {
printf("%d ", below[i]);
}
printf("\n");
return 0;
}
```
阅读全文