## 输入描述
第一行分别输入两个整数 m
,n
表示数组的行数和列数
接下来输入 m
行, n
个整数
m,n均小于100000
## 输出描述 输出整数数组中最大子数组的和 ## 输入样例 3 6 5 6 -3 8 -9 2 1 -12 20 0 -3 -5 -9 -7 -3 6 7 -1 ## 输出样例 28 ## 提示 子数组:-3 8
20 0
-3 6
一维数组最大子数组和参考代码:
#include <stdio.h>
#include <string.h>
int MaxSum(int *arr, int size)
{
int current = arr[0];
int max = current;
for (int i = 0; i < size; i++)
{
if (current < 0)
current = 0;
current += arr[i];
if (current > max)
max = current;
}
return max;
}
int main(void)
{
char x[40], y[40];
int a1[5] = {-1, 5, 6, -7, 3};
int a2[5] = {-5, -4, -8, -1, -10};
int a3[5] = {-1, 5, 6, -7, 10};
int max1, max2, max3;
max1 = MaxSum(a1, 5);
max2 = MaxSum(a2, 5);
max3 = MaxSum(a3, 5);
printf("%d\n", max1);
printf("%d\n", max2);
printf("%d\n", max3);
}