C语言删除数组第一个元素或者最后一个元素,求最后得到数组和到最大值C语言删除数组第一个元素或者最后一个元素,求最后得到数组和到最大值
时间: 2024-09-20 12:17:57 浏览: 45
C语言程序设计-输入一维数组的8个元素,并将最大值与最后一个数交换
5星 · 资源好评率100%
在C语言中,删除数组的第一个元素通常涉及到修改数组的指针和减小数组长度。如果你想保留数组的其余部分并计算新的最大值,可以这样做:
```c
#include <stdio.h>
// 删除第一个元素并更新数组指针和大小
void remove_first(int arr[], int* size) {
if (*size > 0) {
*size -= 1;
// 如果数组有元素,将剩余元素向左移动一位
for (int i = 0; i < *size; i++) {
arr[i] = arr[i + 1];
}
}
}
// 删除最后一个元素,需要额外存储最后一个元素
int remove_last(int arr[], int size) {
int last = arr[size - 1]; // 存储最后一个元素
for (int i = size - 1; i > 0; i--) {
arr[i] = arr[i - 1];
}
arr[0] = last; // 将last放回数组首部
return last; // 返回最后一个元素(现在是最小的)
}
// 计算数组的新和和最大值
int calculate_new_sum_max(int arr[], int size) {
int sum = 0;
int max = arr[0]; // 先假设第一个元素为最大
for (int i = 0; i < size; i++) {
sum += arr[i];
max = (arr[i] > max) ? arr[i] : max; // 更新最大值
}
return sum, max;
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
// 示例:删除第一个元素
remove_first(arr, &size);
int sum_max_after_first = calculate_new_sum_max(arr, size);
// 示例:删除最后一个元素
int last_value = remove_last(arr, size);
int sum_max_after_last = calculate_new_sum_max(arr, size);
printf("删除第一个元素后的数组和及最大值: %d, %d\n", sum_max_after_first[0], sum_max_after_first[1]);
printf("删除最后一个元素后,新值为 %d,数组和及最大值: %d, %d\n", last_value, sum_max_after_last[0], sum_max_after_last[1]);
return 0;
}
```
阅读全文