输出二维环形数组中最大子数组和
2015-04-03 13:14
183 查看
组员 石鹤李海超
一、题目
输出二维环形数组中最大子数组和
二、设计思想
把解决一维环形数组,和普通二维数组的方法结合起来街是解决二维环形数组的方法。
三、源代码
四、结果截图
五、实验心得
本次实验并不很难,只需把前两次的想法结合起来,修改下前两次的程序即可。
但在调用函数传参是我俩遇到了麻烦,改正后对传参有了更深的认识。
一、题目
输出二维环形数组中最大子数组和
二、设计思想
把解决一维环形数组,和普通二维数组的方法结合起来街是解决二维环形数组的方法。
三、源代码
#include<iostream.h> #include<time.h> #include<stdlib.h> int qiumax(int arry[],int max) { int i; long sum; for(i=0;i<5;i++) { for(i=0;i<5;i++) { arry[i+5]=arry[i]; } } for(int j=0;j<5;j++) { sum=0; for(int k=j;k<5+j;k++) { sum=sum+arry[k]; if(sum>max) { max=sum; } } } return max; } int main() { int qiumax(int arry[10],int max); int i,j,k; int arry[5][10]={{1,1,1,-1,-1},{1,1,1,-1,-1},{1,1,1,-1,-1},{1,1,1,-1,-1},{1,1,1,-1,-1}}; int arry1[10]={0,0,0,0,0,0,0,0,0,0}; int max=arry[0][0]; for(i=0;i<5;i++) { for(j=0;j<5;j++) { arry[i][j+5]=arry[i][j]; } } for(i=0;i<5;i++) { for(j=i;j<5;j++) { for( k=0;k<5;k++) { arry1[k]+=arry[j][k]; } max=qiumax(arry1,max); } for(k=0;k<10;k++) { arry1[k]=0; } } cout<<"MAX IS"<<" "<<max<<endl; return 0; }
四、结果截图
五、实验心得
本次实验并不很难,只需把前两次的想法结合起来,修改下前两次的程序即可。
但在调用函数传参是我俩遇到了麻烦,改正后对传参有了更深的认识。
相关文章推荐
- 最大子段和系列(二维子段和、环形数组子段和、最大m段和) 思路
- 二维环形数组求最大子数组和
- 一个H行L列的二维矩阵数组(整形),求每行的元素总和,并输出最大的那一行的总和
- Task 4.4二维环形数组求最大子矩阵之和
- 输出一维环形数组中最大子数组和最大子数组的位置
- 输出二维数组中最大的值
- 数组中的最大值,最小值,数组元素之和并逆序输出数组的元素
- 数组中的最大值,最小值,数组元素之和并逆序输出数组的元素
- 输出二维宽字节数组
- 初始化一个有10个整数的数组,在数组中查找并输出最大值和最小值。
- 定义一个int型的一维数组,包含10个元素,分别赋一些随机整数,然后求出所有元素的最大值,最小值,平均值,和值,并输出出来。
- 编程之美 子数组之和的最大值(二维)
- 汇编最后一次实验(给定两个数组,以十六进制的方式输出其中的最大值)
- 定义一个二维数组,写函数来实现对该二维数组求最大值。(要求,用行指针为函数形参)
- 多文件程序输出数组的最大值
- 用行指针为函数形参来实现对该二维数组求最大值
- 输出子数组的最大和
- 函数调用输出一个一维数组中的最大值、最小值、全部元素的和,并将此数组中的值按逆序重新存放。
- 编程之美-2.15-子数组之和的最大值(二维)
- js实现求连续子数组的最大和并输出下标