去除数组中的最大值与最小值
时间: 2023-11-17 18:07:22 浏览: 245
可以采用以下方法去除数组中的最大值与最小值:
1. 首先找到数组中的最大值和最小值;
2. 然后创建一个新数组,将原数组中除最大值和最小值以外的元素都添加到新数组中;
3. 最后返回新数组。
以下是一个示例代码:
```python
def remove_min_and_max(arr):
min_val = min(arr)
max_val = max(arr)
new_arr = [x for x in arr if x != min_val and x != max_val]
return new_arr
```
你可以尝试运行以下代码来测试这个函数:
```python
arr = [1, 5, 3, 2, 8, 6]
new_arr = remove_min_and_max(arr)
print(new_arr) # 输出 [5, 3, 6]
```
相关问题
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` 函数计算去掉最大值和最小值后其余值的平均值,并将其打印到控制台上。
c语言去掉最大值和最小值
可以采用以下的方法来去掉数组中的最大值和最小值:
1. 先找到数组中的最大值和最小值。
2. 创建一个新数组,将原数组中除了最大值和最小值以外的元素复制到新数组中。
下面是一个示例代码:
```c
#include <stdio.h>
int main() {
int arr[] = {5, 3, 8, 2, 9, 1, 6, 4, 7}; // 原数组
int n = sizeof(arr) / sizeof(arr[0]); // 数组长度
int max = arr[0], min = arr[0]; // 最大值和最小值的初始值
int i, j, k = 0; // 循环计数器和新数组的下标
// 找到最大值和最小值
for (i = 1; i < n; i++) {
if (arr[i] > max) {
max = arr[i];
}
if (arr[i] < min) {
min = arr[i];
}
}
// 创建新数组并复制元素
int new_arr[n - 2];
for (j = 0; j < n; j++) {
if (arr[j] != max && arr[j] != min) {
new_arr[k] = arr[j];
k++;
}
}
// 输出新数组
printf("去掉最大值和最小值后的数组:\n");
for (i = 0; i < n - 2; i++) {
printf("%d ", new_arr[i]);
}
printf("\n");
return 0;
}
```
输出结果为:
```
去掉最大值和最小值后的数组:
5 3 8 6 4 7
```