组员 石鹤李海超
一、题目
输出一个数组中最大和的子数组,数组为int32型,有1000个数,保证最大子数组的和不溢出。
二、设计思想
随机产生一千个数的数组,求最大子数组和的过程中判断是否溢出,如果溢出,则输出溢出。
三、源代码
#include<iostream.h> long MAX(unsigned long arry[],int length) { unsigned long sum=arry[0]; unsigned long maxsum=arry[0]; for(int i=1;i<length;i++) { if(sum<0) { sum=arry[i]; } else { sum=sum+arry[i]; if(sum<LONG_MAX) { cout<<"溢出"<<endl; break; } } if(maxsum<=sum) { maxsum=sum; } } return maxsum; } int main() { unsigned long a[1000]; for(int i=0;i<1000;i++) { a[i]=(unsigned long)rand()%5+4294967290; cout<<a[i]<<" "; } unsigned long q=MAX(a,1000); cout<<endl; cout<<q; if(q<0) { cout<<"溢出"<<endl; } return 0; }
四、结果截图
五、实验心得
我俩讨论了好久,也没想出溢出后怎么处理,最后只能输出结果溢出。
其他过程中没有什么太大困难,只是把以前程序作了一些改进,希望以后继续进步。
六、相片
时间: 2024-10-03 00:24:02