用c语言生成一个在10个数据里面去掉两个最大值和两个最小值后取平均值的函数
时间: 2024-04-14 12:26:48 浏览: 95
C语言程序设计-编写函数fun对主程序中用户输入的具有10个数据的数组a按由大到小排序,并在主程序中输出排序结果;
5星 · 资源好评率100%
下面是一个用 C 语言编写的函数,可以实现在给定的 10 个数据中去掉两个最大值和两个最小值后取平均值的功能:
```c
#include <stdio.h>
float averageWithoutExtremes(int data[], int size) {
int i, j, temp;
float sum = 0;
// 使用冒泡排序对数据进行升序排序
for (i = 0; i < size - 1; i++) {
for (j = 0; j < size - i - 1; j++) {
if (data[j] > data[j + 1]) {
temp = data[j];
data[j] = data[j + 1];
data[j + 1] = temp;
}
}
}
// 计算去掉两个最大值和两个最小值后的平均值
for (i = 2; i < size - 2; i++) {
sum += data[i];
}
return sum / (size - 4); // 去掉四个极值后的平均值
}
int main() {
int data[] = {5, 2, 8, 6, 9, 1, 3, 7, 4, 10};
int size = sizeof(data) / sizeof(data[0]);
float avg = averageWithoutExtremes(data, size);
printf("平均值: %.2f\n", avg);
return 0;
}
```
这个函数使用了冒泡排序算法对给定的数据进行升序排序,并且在计算平均值时去掉了两个最大值和两个最小值。在主函数中,我们定义了一个示例数据集合,并调用 `averageWithoutExtremes` 函数来计算平均值。最后,通过 `printf` 函数将结果打印出来。
注意,这里假设输入的数据集合大小为至少 4,即 `size >= 4`。如果数据集合大小不满足该条件,可能会导致越界或计算错误。你可以根据实际情况进行调整和验证。
阅读全文