返回二维数组最大子数组的和

Posted ysong666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了返回二维数组最大子数组的和相关的知识,希望对你有一定的参考价值。


程序代码:
#include<stdio.h> #define M 5 #define N 4 int maxSubArray(int arr[], int len) { int i, sum = arr[0], b = 0; for (i = 0; i<len; ++i) { if (b>0) b += arr[i]; else b = arr[i]; if (b>sum) sum = b; } return sum; } int maxSubMatrix(int n, int m, int array[M][N]) { int i, j, h, max, sum = -100000; int b[100]; for (i = 0; i < n; i++) { memset(b, 0, sizeof(b)); for (j = i; j < n; j++) { for (h = 0; h<m; h++) { b[h] += array[j][h]; } max = maxSubArray(b, h); if (max>sum) sum = max; } } return sum; } int main() { int arr[M][N] ; printf("随机产生二维数组为 "); srand(time(0)); int i,j; for (i = 0; i < M; i++) { for (j = 0; j < N; j++) { arr[i][j] = rand() % 100-50; printf("%d ",arr[i][j] ); } printf(" "); } printf("最大子数组和为:%d ",maxSubMatrix(M, N, arr)); system("pause"); return 0; }

  运行结果:

技术分享图片

工作照片:

技术分享图片

 



以上是关于返回二维数组最大子数组的和的主要内容,如果未能解决你的问题,请参考以下文章

课堂练习:返回一个二维数组中最大子数组的和

返回一个二维数整数组中最大子数组的和

返回一个二维整数组中最大子数组的和

返回一个二维整数数组中最大子数组的和

课堂练习;返回一个二维数组中最大子数组的和

返回一个二维整数数组中最大子数组的和