完善程序
(最大子矩阵和)给出m行n列的整数矩阵,求最大的子矩阵和(子矩阵不能为空)。 输入第一行包含两个整数m和n,即矩阵的行数和列数。之后m行,每行n个整数,描述整个矩阵。程序最终输出最大的子矩阵和。(最后一空4分,其余3分,共16分) 比如在如下这个矩阵中: 4 4 0 -2 -7 0 9 2 -6 2 -4 1 -4 1 -1 8 0 -2 拥有最大和的子矩阵为: 9 2 -4 1 -1 8 其和为15 3 3 -2 10 20 -1 100 -2 0 -2 -3 最大子矩阵和为128 4 4 0 -2 -9 -9 -9 11 5 7 -4 -3 -7 -6 -1 7 7 5 最大子矩阵和为26 #include <iostream> using namespace std; 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() { cin >> m >> n; for(i = 1; i <= m; i++) for(j = 1; j <= n; j++) cin >> 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; } } cout << ans << endl; return 0; }
(打印月历)输入月份m(1≤m≤12),按一定格式打印2015年第m月的月历。(第三、四空2.5分, 其余3分) 例如,2015年1月的月历打印效果如下(第一列为周日): S M T W T F S 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 #include <iostream> #include <string> using namespace std; const int dayNum[] = {-1, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int m, offset, i; int main() { cin >> m; cout << "S\tM\tT\tW\tT\tF\tS" << endl; //'\t'为TAB制表符 ⑴ ; for(i = 1; i < m; i++) offset = ⑵ ; for(i = 0; i < offset; i++) cout << '\t'; for(i = 1; i <= ⑶ ; i++) { cout << ⑷ ; if(i == dayNum[m] || ⑸ == 0) cout << endl; else cout << '\t'; }
希望与孩子们一起成长,见证

浙公网安备 33010602011771号