编写子函数fun,其功能是将形参数列中小于平均值且最接近平均值的数返回,main函数负责输入、输出。 例如: 输入数列的长度:10 输入数列:46、30、32、40、6、17、45、15、48、26 数列的平均值:30.50 小于平均值且最接近平均值的数为:30
时间: 2023-07-10 14:07:51 浏览: 89
以下是该题的代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define MAX_LEN 100
double getAverage(int arr[], int n) {
double sum = 0;
for (int i = 0; i < n; i++) {
sum += arr[i];
}
return sum / n;
}
int fun(int arr[], int n) {
double avg = getAverage(arr, n);
int res = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] < avg && abs(arr[i] - avg) < abs(res - avg)) {
res = arr[i];
}
}
return res;
}
int main() {
int n, arr[MAX_LEN];
printf("输入数列的长度:");
scanf("%d", &n);
printf("输入数列:");
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
double avg = getAverage(arr, n);
printf("数列的平均值:%.2f\n", avg);
int res = fun(arr, n);
printf("小于平均值且最接近平均值的数为:%d\n", res);
return 0;
}
```
运行示例:
```
输入数列的长度:10
输入数列:46 30 32 40 6 17 45 15 48 26
数列的平均值:30.50
小于平均值且最接近平均值的数为:30
```
阅读全文