用c写一个编程,满足,一个有N个元素的整型数组,求该数组的各个子数组中,子数组之和的最大值
时间: 2024-02-25 13:57:41 浏览: 26
以下是用C语言实现 Kadane 算法的代码:
```c
#include <stdio.h>
int maxSubArray(int nums[], int n) {
int max_so_far = nums[0];
int max_ending_here = nums[0];
for (int i = 1; i < n; i++) {
max_ending_here = max_ending_here + nums[i];
if (max_ending_here < nums[i]) {
max_ending_here = nums[i];
}
if (max_so_far < max_ending_here) {
max_so_far = max_ending_here;
}
}
return max_so_far;
}
int main() {
int nums[] = {-2, 1, -3, 4, -1, 2, 1, -5, 4};
int n = sizeof(nums) / sizeof(nums[0]);
int max_sum = maxSubArray(nums, n);
printf("Maximum subarray sum is %d", max_sum);
return 0;
}
```
其中,nums 是输入的整型数组,n 是数组的长度。函数 maxSubArray 返回子数组之和的最大值。在主函数中,我们用一个给定的例子测试了这个函数的正确性。