以适合C++的方式删除数组中最小和最大的元素,可以按照以下步骤进行:
以下是一个示例代码:
#include <iostream>
void removeMinMax(int* arr, int size) {
int minIndex = 0;
int maxIndex = 0;
int minValue = arr[0];
int maxValue = arr[0];
// 找到最小和最大元素以及它们的索引位置
for (int i = 1; i < size; i++) {
if (arr[i] < minValue) {
minValue = arr[i];
minIndex = i;
}
if (arr[i] > maxValue) {
maxValue = arr[i];
maxIndex = i;
}
}
// 创建新数组,复制除最小和最大元素之外的所有元素
int* newArr = new int[size - 2];
int newIndex = 0;
for (int i = 0; i < size; i++) {
if (i != minIndex && i != maxIndex) {
newArr[newIndex] = arr[i];
newIndex++;
}
}
// 删除原始数组
delete[] arr;
// 将新数组赋值给原始数组的指针
arr = newArr;
// 输出删除最小和最大元素后的数组
for (int i = 0; i < size - 2; i++) {
std::cout << arr[i] << " ";
}
}
int main() {
int arr[] = { 5, 2, 9, 1, 7, 4, 6, 3, 8 };
int size = sizeof(arr) / sizeof(arr[0]);
removeMinMax(arr, size);
return 0;
}
这段代码会删除数组中的最小和最大元素,并输出删除后的数组。请注意,这只是一个示例,实际应用中可能需要根据具体情况进行适当的修改。
领取专属 10元无门槛券
手把手带您无忧上云