您的位置:首页 > 其它

《返回一个整数数组中最大子数组的和》

2015-03-23 12:20 525 查看
设计思路:

1.首先计算出以第一个数为开头的所有子数组之和。

2.同时求出其中最大的子数据之和,并存入数组中。

3.依次这样计算,直到求完最后一个。

4.再将存放子数组之和的数组进行比较,输出最大的子数组之和。

代码:

//软件工程四 课堂练习 康娜
#include<iostream>
using namespace std;

void main()
{
int a=0,b=0,i,j,m=0,num[10],sym,r[10]={0,0,0,0,0,0,0,0,0,0};

cout<<"请输入数组中元素的取值范围:(a<b)";
cin>>a>>b;

for(i=0;i<10;i++)
{
sym=rand()%2;
if(sym==0)
num[i]=rand()%(b-a)+a;
else
num[i]=-(rand()%(b-a)+a);
}

cout<<"获得随机数组为"<<endl;
for(i=0;i<10;i++)
{
cout<<num[i]<<"   ";
}
for(i=0;i<10;i++)
{
m=num[i];
int sum=0;
for(j=i;j<10;j++)
{
sum=sum+num[j];
if(sum>m)
{
m=sum;
}
}
r[i]=m;
}
m=r[0];
for(i=0;i<10;i++)
{
if(r[i]>=m)
m=r[i];
}
cout<<endl;
cout<<"最大的子数组之和为:"<<m<<endl;

}


程序效果截图:



项目计划日志:



时间记录日志:



缺陷记录日志:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: