#include<iostream> #include<stdlib.h> #include<iomanip> #include<time.h> #define Max 10000 using namespace std; void main () { int n,array[Max]; cout<<"请输入数组的长度:"; cin>>n; //输入处理的元素个数 cout<<"产生的n个数为"<<endl; for(int i=0;i<n;) { array[i]=-Max/10+rand()%(Max*2+1); cout<<setw(10)<<array[i]<<" "; i++; if(i%10==0) cout<<endl; } //通过rand随机产生正负数元素 cout<<endl; int sum=array[0],max=array[0]; for(int i=0;i<n;i++) { sum=sum+array[i]; //累加元素求出数组和 if(sum<array[i]) sum=array[i]; if (max<sum) max=sum; //求出最大数组和 } cout<<"最大的子数组和是:"<<max<<endl; //测试超出int32范围 for(int i=0;i<n;i++) { if(array[i]<=0) sum=sum-array[i]; else sum=sum+array[i]; } cout<<"int32溢出测试值:"<<sum<<endl; }
测试结果:
总结:翻阅c++有关书籍,获得的一定的帮助;
我们在编译过程中,对于一些问题产生分歧,并进行了讨论交流;
测试溢出int32,总是无法达到预期结果。
结对同学:博客园ID:绝望的暴风雨(*涛)
学习照片: