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

设计思路:

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;

}

程序效果截图:

项目计划日志:

时间记录日志:

缺陷记录日志:

 

原文地址:https://www.cnblogs.com/lottie021/p/4359413.html