组合题5 个小题
已作答 0 / 5
2.(最大矩阵和)给出 M 行 N 列的整数矩阵,就最大的子矩阵和(子矩阵不能为空)。
输入第一行包含两个整数 M 和 N,即矩阵的行数和列数。之后 M 行,每行 N 个整数,描述整个矩阵。程序最终输出最大的子矩阵和。(第一空 2 分,其余 3 分,共 14 分)
1#include <stdio.h>2const int SIZE=100;3int matrix[SIZE+1][SIZE+1];4int rowsum[SIZE+1][SIZE+1]; //rowsum[i][j]记录第i行前j个数的和5int m,n,i,j,first,last,area,ans;6int main(){7 scanf(“%d %d”,&m,&n);8 for(i=1;i<=m;i++)9 for(j=1;j<=n;j++)10 scanf(“%d”,&matrix[i][j]);11ans=matrix (1) ;12for(i=1;i<=m;i++)13 (2) ;14 for(i=1;i<=m;i++)15 for(j=1;j<=n;j++)16 rowsum[i][j]= (3) ;17 for(first=1;first<=n;first++)18 for(last=first;last<=n;last++){19 (4) ;20 for(i=1;i<=m;i++){21 area+= (5) ;22 if(area>ans)23 ans=area;24 if(area<0)25 area=0;26 }27 }28 printf(“%d\n”,ans);29 return 0;30}第 5 空应填( )