第一次涉及矩阵运算,感觉很难,请教下什么原因
- C/C++ code
#include <iostream>const int MAX = 100;using namespace std;void find(int num[][MAX], int x, int y);int findmax(int num[][MAX], int x, int y);void main(){ int x, y; int num[MAX][MAX]; while (cin >> x && x != EOF && cin >> y && y != EOF ) { for (int i = 0; i < x; ++i) { for (int j = 0; j < y; ++j) { cin >> num[i][j]; } } find(num, x, y); cout << findmax(num, x, y) << endl; }}void find(int num[][MAX], int x, int y){ for (int i = 0; i < x; ++i) { for (int j = 1; j < y; ++j) { num[i][j] += num[i][j-1]; } }}int findmax(int num[][MAX], int x, int y){ int temp = 0; int maxsub = num[0][0]; for (int j = 0; j < y; ++j) { for (int i = 0; i < x; ++i) { temp += num[i][j]; if (temp > 0) { if (temp > maxsub) { maxsub = temp; } } else { temp = 0; } } temp = 0; } return maxsub;}
[解决办法]
x != EOF && y != EOF 这是什么意思??int型的怎么会==EOF(end of file)
还有就是你的运算到底是想实现什么??
[解决办法]
想问什么,帮你分析代码?看别人的代码是最麻烦的
[解决办法]
你的代码没有注释,帖子又没说明,标识符又不具备清晰明确的含义。这样别人连你的程序是想做什么用的都很难看明白,又怎么帮你看呢?
[解决办法]
按你上面的说法,要找出“一个子矩阵,使得子矩阵各元素之和要最大”,那岂不是说直接把整个矩阵输出就完了?
[解决办法]
楼主是做ACM题 吧?
[解决办法]
[解决办法]
搞错,第二行的最后两个数8 9 是在后面的7 9 上面的。