请用c语言写一个程序,实现计算n个元素组成的整形数组中去掉最大值和最小值的平均值(若有多个相同的最大值最小值,只要去掉一个)
时间: 2023-12-10 08:41:50 浏览: 106
以下是用C语言实现的程序:
```c
#include <stdio.h>
float average(int arr[], int n) {
int max = arr[0], min = arr[0], sum = 0, count = 0;
for (int i = 0; i < n; i++) {
if (arr[i] > max) max = arr[i];
if (arr[i] < min) min = arr[i];
sum += arr[i];
count++;
}
sum -= max + min;
count -= 2;
return (float)sum / count;
}
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; // 测试数据
int n = sizeof(arr) / sizeof(arr[0]);
printf("去掉最大值和最小值的平均值为:%.2f\n", average(arr, n));
return 0;
}
```
在这个程序中,我们遍历整个数组以确定最大值和最小值,然后计算除去这两个值后的总和并计算平均值。注意,我们需要一个计数器来跟踪除去最大值和最小值后还有多少个元素。最后输出结果。
相关问题
用C语言写一个函数,该函数是对一个数组中的元素去掉最大最小值求平均值
以下是使用 C 语言编写的函数,该函数可以对一个数组中的元素去掉最大值和最小值,然后计算平均值。
```c
#include <stdio.h>
float average_without_min_max(int arr[], int size) {
int min = arr[0];
int max = arr[0];
int sum = 0;
int count = 0;
for (int i = 0; i < size; i++) {
if (arr[i] < min) {
min = arr[i];
}
if (arr[i] > max) {
max = arr[i];
}
sum += arr[i];
count++;
}
return (float)(sum - min - max) / (count - 2);
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
float result = average_without_min_max(arr, size);
printf("Average without min and max: %.2f\n", result);
return 0;
}
```
在这个函数中,我们首先定义了一个 `min` 和 `max` 变量,用于存储数组中的最小值和最大值。然后我们遍历整个数组来计算总和并计算数组中的元素数量。在遍历数组的过程中,我们还会更新最小值和最大值。
最后,我们从总和中减去最小值和最大值,并将结果除以元素数量减去 2,以获得平均值。
c语言处理一个数组,去掉最大值和最小值,其余值取平均
以下是C语言处理一个数组,去掉最大值和最小值,其余值取平均的示例代码:
```c
#include <stdio.h>
float average(int arr[], int n) {
int i, sum = 0, max = arr[0], min = arr[0];
for (i = 0; i < n; i++) {
sum += arr[i];
if (arr[i] > max) {
max = arr[i];
}
if (arr[i] < min) {
min = arr[i];
}
}
return (float) (sum - max - min) / (n - 2);
}
int main() {
int arr[] = {3, 5, 2, 8, 9, 1, 4, 6, 7};
int n = sizeof(arr) / sizeof(arr[0]);
float avg = average(arr, n);
printf("Average: %.2f\n", avg);
return 0;
}
```
在上面的示例代码中,我们定义了一个函数 `average`,它接受一个整数数组 `arr` 和数组的大小 `n`,并返回一个浮点数,表示去掉最大值和最小值后其余值的平均值。我们使用一个循环遍历整个数组,同时计算数组元素的总和,并找到最大值和最小值。最后,我们使用总和减去最大值和最小值,并将其除以剩余元素的数量来计算平均值。
在 `main` 函数中,我们定义了一个整数数组 `arr`,并计算其大小 `n`。我们使用 `average` 函数计算去掉最大值和最小值后其余值的平均值,并将其打印到控制台上。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)