项目成员:姜中希、王昭博。
1.设计思想:
(1) 外层while循环控制结束(i=n)的时候停止。
(2) 内层计算:按照不循环数组的方式计算,每当外层i增加1,数组更新,第i-1个数变为数组的第n个数,
第i个数变为数组的第一个数,并进行最大子数组的和的求解。并将最大子数组的开头位置坐标记录入一个数组中,
每次计算的最大和也存入一个数组中,最后进行比较得到最大和以及和最大子的数组的开头位置坐标。
2.实现代码:
//2015/4/4#includeusing namespace std;void max(int l,int *a)//当元素不全为负数的情况{ int sum=0,j,p; for(int m=0;m 0) { flag=i; break; } } for(int i=j;i>=flag;i--)//从最后元素一个往前找寻找范围是l结果是从j到j-l+1范围内最大子数组的所有元素的下标 { if(p<0) { p=a[i]; } else { p=p+a[i]; cout< <<" "; } if(sum >n; int *a=new int[2*n];//申请一个动态数组数组的长度为2n cout<<"请输入数组元素:"; for(int i=0;i >a[i]; if(a[i]<0) { count++; } } if(count==n)//当数组元素全是负数的情况只需比较单个元素的大小并记下坐标 { mx=a[0]; int c=0; for(int i=1;i mx) { mx=a[i]; c=i; } } cout<<"最大子数组的和为:"< <
3.结果截图:
心得总结:
在这次结对开发过程中,我发现虽然我能尽快的找到一些思路,但是我的转化能力欠缺了一些,不能很好的将思路转化为代码;这也让我意识到团队的力量,团队的力量可以让进程更加快速(虽然我也知道这需要互相配合得很好)。每个人都有自己擅长的一方面,我听过一句话,“世界上没有最完美的人,但世界上有完美的团队。”所以我会努力发展自己的长处(尽管我还没找到),在团队里发挥自己的作用。