2.(最大矩阵和)给出 行 列的整数矩阵,就最大的子矩阵和(子矩阵不能为空)。
输入第一行包含两个整数 和 ,即矩阵的行数和列数。之后 行,每行 个整数,描述整个矩阵。程序最终输出最大的子矩阵和。(第一空 分,其余 分,共 分)
#include <stdio.h>const int SIZE=100;int matrix[SIZE+1][SIZE+1];int rowsum[SIZE+1][SIZE+1]; //rowsum[i][j]记录第i行前j个数的和int m,n,i,j,first,last,area,ans;int main(){ scanf(“%d %d”,&m,&n); for(i=1;i<=m;i++) for(j=1;j<=n;j++) scanf(“%d”,&matrix[i][j]);ans=matrix (1) ;for(i=1;i<=m;i++) (2) ; for(i=1;i<=m;i++) for(j=1;j<=n;j++) rowsum[i][j]= (3) ; for(first=1;first<=n;first++) for(last=first;last<=n;last++){ (4) ; for(i=1;i<=m;i++){ area+= (5) ; if(area>ans) ans=area; if(area<0) area=0; } } printf(“%d\n”,ans); return 0;}第 1 空应填( )
第 2 空应填( )
第 3 空应填( )
第 4 空应填( )
第 5 空应填( )