教育信息化建设网站,学生建设网站,长沙个人做网站排名,什么是静态网站一#xff0e;实验题目 求一个二维数组中和最大的子数组。 二#xff0e;实验思路 基于我们第一次合作时求的一位数组最大子数组#xff0c;加上一层循环来遍历二维数组中的所有子矩阵的情况。 第一步#xff1a;先利用上次的方法求每一行的情况#xff0c;将每行结果存入…一实验题目 求一个二维数组中和最大的子数组。 二实验思路 基于我们第一次合作时求的一位数组最大子数组加上一层循环来遍历二维数组中的所有子矩阵的情况。 第一步先利用上次的方法求每一行的情况将每行结果存入一个一位数组中构成一个二维数组A[][]。 第二步将上述二维数组每一列利用求每一行的方法再次遍历。将每个结果与A[][]中的值比较取大值。 第三步输出这个最大值。 三代码 1 // ketang5.cpp : 定义控制台应用程序的入口点。2 //人员: 张世通 梁世豪3 4 #include stdafx.h5 #include iostream6 #include fstream7 using namespace std;8 9 /*二维数组压缩函数*/10 void yasuo(int **Source,int **Destion,int row,int line)11 {//将每一行的数组元素都用枚举法求出子数组12 int i,j,add,count;13 for(i0;irow;i)14 {15 count0;16 for(j0;jline;j)17 {18 add0;19 for(int l0;lline-j;l) //每一行按顺序进行枚举存入数组中20 {21 addaddSource[i][jl];22 Destion[i][countl]add;23 }24 countcountline-j;25 }26 }27 }28 29 /*求最大值函数*/30 int Max(int **Destion,int row,int line)31 {32 int i,j,add,max;33 maxDestion[0][0]; //将数组的第一个数赋值给max34 for(j0;jline;j)35 {36 for(i0;irow;i)37 {38 add0;39 for(int r0;rrow-i;r)40 {41 addaddDestion[ri][j]; //逐列对数组进行枚举求最大值42 if(maxadd)43 {44 maxadd;45 }46 }47 }48 }49 return max;50 }51 52 /*数组初始化*/53 void chushihua(int**Arr,int row,int line)54 {55 cout请输入数组数据endl;56 for(int i0;irow;i)57 {58 for(int j0;jline;j)59 {60 cinArr[i][j];61 }62 }63 }64 65 /*释放空间*/66 void Delete(int **Arr,int row)67 {68 for(int i0;irow;i)69 {70 delete[]Arr[i];71 }72 delete[]Arr;73 }74 int main()75 {76 char s;77 int row,col1,col2; //定义行数列数78 cout请输入行数;79 cinrow;80 cout请输入列数;81 cincol1; 82 int **A; //动态定义二维数组83 int **B;84 col2col1*(col11)/2;85 Anew int*[row];86 for(int k0;krow;k)87 {88 A[k]new int[col1];89 }90 Bnew int*[row];91 for(int l0;lrow;l)92 {93 B[l]new int[col2];94 }95 chushihua(A,row,col1);96 yasuo(A,B,row,col1);97 int maxMax(B,row,col2);98 cout最大子数组之和为maxendl;99 coutendl;
100 cout是否继续(Y/N);
101 cins;
102 while(s!Ys!ys!Ns!n)
103 {
104 cout输入错误请重新输入(Y/N);
105 cins;
106 }
107 if(sY||sy)
108 {
109 main();
110 }
111 else //释放数组空间
112 {
113 Delete(A,row);
114 Delete(B,row);
115 }
116 return 0;
117 } 四运行截图 五.收获体会 第一点这次结对开发的过程让我学会了利用已有资源进行程序的开发正是有了上次一位数组求最大子数组的基础这次求二维数组最大子数组才有了正确的思路。 第二点这是和世通的第二次结对开发程序他的思路很清晰编程能力也很好有很多值得我学习的地方。以后应该还有很多合作的机会我都会珍惜的。 第三点我觉得结对开发这个主意应该早点应用到我们的学习中这种方法下我们会尽力去思考问题的解决方法基础差一点的在另一方的影响下也会学到不少实用的东西。而不是遇见不会的就百度一个程序去应付老师而造成恶性循环给自己扣上一个“不会编程”的帽子来逃避。 六合影 转载于:https://www.cnblogs.com/zglsh/p/4369598.html