数组第二次试验
2016-03-27 09:51
351 查看
一、题目:返回一个整数数组中最大子数组的和。
二、要求: 输入一个整形数组,数组里有正数也有负数。 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
如果数组A[0]……A[j-1]首尾相邻,允许A[i-1], …… A[n-1], A[0]……A[j-1]之和最大。
同时返回最大子数组的位置。 求所有子数组的和的最大值。
三、设计思想
在上次试验的基础上,利用动态数组,为了满足首尾相连,所以在计算一次之后,
要把该数放在数组的最后边,这样循环遍历,最后求得最大数组之和及他们所在的位置。
四、源代码
五。实验截图
六、实验总结
本次试验刚开始的时候我们俩的设计思路还不太明确,想用链表实现,但链表的知识还都不太会,
经过一番讨论与思考决定还是利用上次的动态数组完成实现。在编程过程中的一些细节知识还把握的不好,
程序修改了很多次才能运行,我们俩都收获了宝贵的经验。
二、要求: 输入一个整形数组,数组里有正数也有负数。 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
如果数组A[0]……A[j-1]首尾相邻,允许A[i-1], …… A[n-1], A[0]……A[j-1]之和最大。
同时返回最大子数组的位置。 求所有子数组的和的最大值。
三、设计思想
在上次试验的基础上,利用动态数组,为了满足首尾相连,所以在计算一次之后,
要把该数放在数组的最后边,这样循环遍历,最后求得最大数组之和及他们所在的位置。
四、源代码
##include <iostream> using namespace std; void Arr_Maxsum(int arr[],int length,int first,int last) { int count=0; int result=arr[0]; int sum=arr[0];//初始化 for(int i=0;i<length;i++) { sum=0; for(int j=i;j<length+i;j++) { sum+=arr[j]; if(sum>result) { result=sum; first=i; last=j; } } arr[length+i]=arr[i]; } if(last>=length) { cout<<"最大子数组起始位置为:"<<first+1<<endl; cout<<"最大子数组终止位置为:"<<last-length+1<<endl; } else { cout<<"最大子数组起始位置为:"<<first+1<<endl; cout<<"最大子数组终止位置为:"<<last+1<<endl; } cout<<"最大子数组为:"<<endl; for(int m=first;m<=last;m++) { cout<<arr[m]<<" "; } cout<<endl; cout<<"最大子数组的和为:"<<endl; cout<<result<<endl; } int main() { int num,length,first,last; first=0; last=0; cout<<"请输入数组元素个数:"; cin>>length;//数组长度 num=2*length; int* arr=new int[num]; cout<<"请输入数组数据:"<<endl; for(int i=0;i<length;i++) { cin>>arr[i]; } cout<<endl; Arr_Maxsum(arr,length,first,last); delete []arr; return 0; }
五。实验截图
六、实验总结
本次试验刚开始的时候我们俩的设计思路还不太明确,想用链表实现,但链表的知识还都不太会,
经过一番讨论与思考决定还是利用上次的动态数组完成实现。在编程过程中的一些细节知识还把握的不好,
程序修改了很多次才能运行,我们俩都收获了宝贵的经验。
相关文章推荐
- Android Studio调试功能使用总结【转】
- jQuery
- JS快速获取图片宽高的方法
- 魔兽争霸系统
- 【phpcms-v9】content_output.class.php文件分析-前台内容详情页显示数据的过滤
- 二分——杰哥的难题
- NodeJs - 100
- 【phpcms-v9】index.php文件分析-前台列表页代码分析
- PS在照片上添加一道彩虹
- Java数据结构的特点
- go语言关于零值的定义
- 【phpcms-v9】index.php文件分析-前台首页模板文件的解析过程分析
- 项目<<魔兽登录系统>>
- _BSMachError: (os/kern) invalid capability (20)
- viewport的使用
- android adb 命令
- XAudio2学习之采样率转换
- 【phpcms-v9】model.class.php文件分析-数据模型的基类
- MinerUtil.java 爬虫工具类
- MinerUtil.java 爬虫工具类