#include<iostream> using namespace std; #define N 1000 int main() { int i,j; int num,value,max=0; int val[N]; int Array[N]; int firstNum=0,lastNum=0; cout<<"输入数的个数:"; cin>>num; for(i=0;i<num;i++) { cin>>val[i]; } value=0; for(i=0;i<num;i++) { value=value+val[i]; if(value>max) { max=value; lastNum=i; } if(value<0) { value=0; firstNum=i+1; } } if(max==0) { max=val[0]; firstNum=0; lastNum=0; for(j=0;j<num;j++) { if(max<val[j]) { max=val[j]; firstNum=j; lastNum=j; } } } cout<<"最大子数组是:"; for(i=firstNum;i<=lastNum;i++) { cout<<val[i]<<" "; } cout<<endl; cout<<"最大子数组的和为:"; cout<<max<<endl; }
写代码:侯志龙 审核测试:李杰
设计思想:首先确定如何用代码实现对数组的遍历,如何进行循环,然后需要考虑如何筛选出结果最大的数组,最后把筛选出的数组显示出来。
总结:本项目看上去不是太复杂,但是非常讲究算法,两个人结对开发,一起讨论,一起想解决方案,一起网上查找算法,更加锻炼了结对开发的能力,
在这过程中虽然有很多困难,但在我们两个合作下还是解决啦,但还有很多不足,希望可以更好。
原文地址:https://www.cnblogs.com/zhilongHou1214/p/9904653.html
时间: 2024-10-10 04:45:10