要删除数组中的最大值,首先需要找到最大值的索引,然后将该索引位置后面的元素依次向前移动一个位置。以下是一个示例代码:
#include <stdio.h>
void deleteMax(int arr[], int size) {
int maxIndex = 0; // 初始最大值索引为第一个元素的索引
int i;
// 找到最大值的索引
for (i = 1; i < size; i++) {
if (arr[i] > arr[maxIndex]) {
maxIndex = i;
}
}
// 将最大值后面的元素依次向前移动一个位置
for (i = maxIndex; i < size - 1; i++) {
arr[i] = arr[i+1];
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
int i;
printf("原始数组:");
for (i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
deleteMax(arr, size);
size--; // 删除最大值后,数组长度减1
printf("删除最大值后的数组:");
for (i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
运行结果:
原始数组:1 2 3 4 5
删除最大值后的数组:1 2 3 4