一、实验思路
先按要求产生一定的随机数,然后分两种情况,一种:如果任意数的和小于0,则数组中有一个数是最大的;
第二种:比较任意相邻N个数和的大小,取最大值
付东:代码编写 岳竞一:提供想法和后期检测
二、实验代码
#include<iostream.h>
#include<stdlib.h>
int Maxsum(int *a,int n)
{
int tempstart =0,sum=0,max=-1000;
int i,start,end;
start=end=0;
for(i=0;i<n;i++)
{
if(sum<0)
{
sum=a[i];
tempstart=i;
}
else
{
sum+=a[i];
}
if(sum>max)
{
max=sum;
start=tempstart;
end=i;
}
}
return max;
}
int main()
{
int b[10000];
int num,i;
cout<<"输入数组成员个数:";
cin>>num;
for(i=0;i<num;i++)
{
b[i]=(rand()%10000)-8000;
}
cout<<"输出数组:"<<endl;
for(i=0;i<num;i++)
{
cout<<b[i]<<"\t";
}
cout<<endl<<"最大子数组和为:"<<Maxsum(b,num)<<endl;
return 0;
}
三、实验结果截图
四、工作照
五、实验感想
在结对的过程中,成长了不少,正如老师所说,不能带一个完全不如自己的人,不能因为宿舍情谊或者其他,但他还是带我飞了,也许飞的不高,但还是感谢付东,做了许多工作,但是没跟我抱怨过。
由于以上原因,也算是一种压力,毕竟每个人都有一股不服输的劲,一颗不给别人扯后腿的自尊心,所以我感觉我的收获是巨大的。
当然也得感谢老师采取这种方法刺激我们,激发我们的潜能!