scanf(“%d”,&stack1*i+);
top1=_____(1)______; top2=_______(2)____; for(j=0j scanf(“%d”,&i); while(i (3) ; top2++; } while(i>top1-1){ top2- -; (4) ; top1++; } clearstack(); printf(“%d\\n”,stack1* (5) +); } return 0; } (最大矩阵和)给出M行N列的整数矩阵,就最大的子矩阵和(子矩阵不能为空)。 输入第一行包含两个整数M和N,即矩阵的行数和列数。之后M行,每行N个整数,描述整个矩阵。程序最终输出最大的子矩阵和。(第一空2分,其余3分,共14分) #include 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; } 二、问题求解(共2题,每题4分,共计8分;每题全部答对得4分) 1. ________ 102 ___________ 2. ________ 15 ____________ 三、阅读程序写结果(共4题,每题8分,共计32分) 1. _________ 8 __________ 2. __________ 20 __________ 3. ___ 2 5 6 3 4 7 1 ____ 4. _ 3 6 9 1 5 10 4 11 8 2 7 _ 四、完善程序(共2题,每题10分,共计20分) 1. (1) ________________________ n __________________________(2分) (2) _________________________ 0___________________________(2分) (3) _______________ stack2[top2]=stack1[top1] ____________(2分) (4) ______________ stack1[top1]=stack2[top2] _____________(2分) (5) ________________________ top1-1 ______________________(2分) 2. (1) ________________________ [1][1] ______________________(2分) (2) _____________________rowsum[i][0]=0___________________(2分) (3) _____________ rowsum[i][j-1] + matrix[i][j] __________(2分) (4) _________________________area=0 _______________________(2分) (5) ___________ rowsum[i][last]-rowsum[i][first-1] ________(2分)