一、项目思路:利用的穷举法,也可以是压榨法,就是把这个矩阵压缩成一个长方形,宽为一,然后在向其他列扩展,之和加起来在比较。
此次是团队开发,我负责编辑程序。
二、项目代码:
#include"iostream.h" using namespace std; static int max;
void qiongju(int juzhen[][4],int ai,int aj,int m,int n) { int linshi; for(int i=ai;i<m;i++) { for(int j=aj;j<n;j++) { linshi=0; for(int i1=ai;i1<=i;i1++) { for(int j1=aj;j1<=j;j1++) { linshi=linshi+juzhen[i1][j1]; } } cout<<linshi<<endl; if(linshi>max) { max=linshi; } } } } void main() { int juzhen[3][4]={{1,4,-6,5},{-6,7,-9,2},{6,4,2,-4}}; for(int si=0;si<3;si++) //输出矩阵 { for(int sj=0;sj<4;sj++) { cout<<juzhen[si][sj]<<" "; } cout<<endl; } max=juzhen[0][0]; for(int i=0;i<3;i++) //对每一个值作为子矩阵第一个值分别求和 { for(int j=0;j<4;j++) { qiongju(juzhen,i,j,3,4); } } cout<<"最大子矩阵和为:<<ma<<endl; }
三、测试结果:
四、项目总结:
经过结对开发,更能促使自己完成任务,完成老师安排的作业。项目测试阶段使自己对程序从头学习,需要自己耐心测试。