写一个选取最大值的数组代码,c语言
时间: 2024-09-28 07:09:06 浏览: 39
C语言经典题目----第一次.docx
在C语言中,可以编写如下的代码来找到一个整型数组中的最大值[^1]:
```c
#include <stdio.h>
#include <stdlib.h>
int findMax(int array[], int size) {
int max = array[0];
for (int i = 1; i < size; i++) {
if (array[i] > max) {
max = array[i];
}
}
return max;
}
int main() {
int array[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
int array_size = sizeof(array) / sizeof(array[0]);
int max_value = findMax(array, array_size);
printf("The maximum value in the array is: %d\n", max_value);
return 0;
}
```
对于找到具有最大和的连续子数组(即最大子数组和)的力扣题[^2],你可以使用Kadane算法[^2]。这里给出的是基本的实现思路:
```c
#include <stdio.h>
// 函数用于计算最大子数组和
int maxSubArraySum(int arr[], int n) {
int max_current = arr[0], max_global = arr[0];
for (int i = 1; i < n; i++) {
max_current = max(arr[i], max_current + arr[i]);
if (max_current > max_global)
max_global = max_current;
}
return max_global;
}
int main() {
int nums[] = {1, -2, 3, 4, -1, 2, 1};
int n = sizeof(nums) / sizeof(nums[0]);
int max_sum = maxSubArraySum(nums, n);
printf("The maximum subarray sum is: %d\n", max_sum);
return 0;
}
```
阅读全文