首页 > 编程语言 > 详细

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

时间:2018-10-21 18:49:19      阅读:155      评论:0      收藏:0      [点我收藏+]

程序代码:
#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("随机产生二维数组为\n"); 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("\n"); } printf("最大子数组和为:%d\n",maxSubMatrix(M, N, arr)); system("pause"); return 0; }

  运行结果:

技术分享图片

工作照片:

技术分享图片

 

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

原文:https://www.cnblogs.com/YSong666/p/9826184.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!