结对开发-- 一维数组求和最大的子数组 (大数溢出)
2015-03-30 12:50
274 查看
一、设计思路
1.在原先的程序上修改实现,扩展数组范围至1000,改变数组的类型。
2.通过添加判断,防止大大数溢出。
二、源代码
三、运行截图
四、心得体会
主要问题是数组类型的改变,以及数组范围调整。代码主要是上次的代码,修改是我俩一起试验解决的。
1.在原先的程序上修改实现,扩展数组范围至1000,改变数组的类型。
2.通过添加判断,防止大大数溢出。
二、源代码
//作者:王炳午 董龙洋 日期:2015.3.28 #include<iostream.h> #include<stdlib.h> #include<time.h> int main() { cout<<"---------------------求数组中子数组和的最大值的小程序----------------------"<<endl; cout<<endl; signed long int a[1000]; int i; int j; srand( (unsigned)time( NULL ) );//随机数种子为当前计算机时间。 cout<<"得到的一组随机整数(1000个数)如下:"<<endl; /*a[0]=2147483647; cout<<a[0]<<"\t";*/ for(i=0;i<1000;i++) { //随机生成长整型整数 j=rand()%2; if(j==0) { a[i]=rand()%2147483648; } else { a[i]=0-rand()%2147483648; } cout<<a[i]<<"\t"; } cout<<endl; int sum=0; int GreateSum=0; for ( i=0;i<1000;i++) { //防止最大值溢出 if(sum>2147483647) { sum=2147483647; } sum+=a[i]; if (sum<0) { sum=0; } if (sum>GreateSum) { GreateSum=sum; } //防止最大值溢出 if(GreateSum>2147483647) { GreateSum=2147483647; } } if (GreateSum==0) { for (int i=0;i<1000;i++) { if (GreateSum==0) { GreateSum=a[i]; } else if (GreateSum<a[i]) { GreateSum=a[i]; } } } cout<<"最大值sum:"<<GreateSum<<endl; system("pause"); return 0; }
三、运行截图
四、心得体会
主要问题是数组类型的改变,以及数组范围调整。代码主要是上次的代码,修改是我俩一起试验解决的。
相关文章推荐
- 结对开发-- 一维数组求和最大的子数组的大数溢出问题
- 结对开发Ⅳ——一维数组求和最大的子数组(大数溢出)
- 结对开发-- 循环一维数组求和最大的子数组
- 结对开发Ⅴ——循环一维数组求和最大的子数组
- 结对开发——一维数组最大子数组判断溢出
- 结对开发——数组求和大数溢出问题
- 结对开发4----最大子数组(大数溢出)
- 体验结对开发的乐趣(1)--(一维数组求和最大的子数组)
- 软件工程结对开发——一维最大子数组求和溢出问题
- 结对开发4----最大子数组(大数溢出)
- 结对开发Ⅱ——二维数组求和最大的子数组
- 结对开发五--最大子数组的和(大数溢出)
- 结对开发Ⅵ——循环二维数组求和最大的子数组
- 体验结对开发的乐趣(3)--(一维数组求最大子数组的和溢出问题)
- 3、软件工程结对开发之求一维数组中连续最大子数组之和并判断溢出
- 结对开发之首尾相连二维数组求最大子数组
- 二维数组最大子数组的和 结对开发 溢出问题
- 求一维数组的最大子数组1(结对开发)
- 结对开发—一维数组之大数溢出
- 求一维数组的最大子数组2(结对开发)