要刪除數組中的最大值,首先需要找到最大值的索引,然后將該索引位置后面的元素依次向前移動一個位置。以下是一個示例代碼:
#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