• 一维数组中求最大子数组的和


    题目:

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

    要求:

      要求程序必须能处理1000 个元素;

      每个元素是int32 类型的;

      输入一个整形数组,数组里有正数也有负数。

      数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。

      求所有子数组的和的最大值。

    (我主要负责程序分析,代码编程;张金负责代码复审,代码测试计划。)

     

    #include<stdlib.h>
    #define AMOUNT 1000
     
    int main()
    {
        long int arr[AMOUNT];
        long int arrCopy[AMOUNT];
        long int max[AMOUNT];
        int i,j;
        int n;
        int start,rear;     //子数组的开始,结束
        int mount=AMOUNT;
        for(i=0;i<mount;i++)
        {
        try
        {
                n=rand()%2;
                if(n==0)
            {
            arr[i]=rand();
            arrCopy[i]=arr[i];
            max[i]=arr[i];
            }
            else
            {
            arr[i]=-rand();
            arrCopy[i]=arr[i];
            max[i]=arr[i];
            }
        }
        catch(long int e)
        {
            cout<<"Long Inter=ger Exception!"<<endl;
        }
        }
        cout<<"Array :"<<endl;
        for(i=0;i<mount;i++)
        {
            cout<<arr[i]<<"  ";
        if((i+1)%10==0)
        {
            cout<<endl;
        }
        }
        for(j=0;j<mount-1;j++)
        {
            for(i=j+1;i<mount;i++)
            {
                try
            {  
            arr[j]=arr[j]+arr[i];
            if(max[j]<arr[j])
            {
                max[j]=arr[j];
                rear=i+1;
            }
                }
            catch(long int e)
            {
            cout<<"Long Inter=ger Exception!"<<endl;
            }
            }
        }
        for(i=0;i<mount;i++)
        {
            if(max[0]<max[i])
        {
                max[0]=max[i];
            start=i+1;
        }  
        }
        cout<<endl;
        cout<<"从第"<<start<<"个数"<<arrCopy[start-1]<<"开始"<<endl;
        cout<<"到第"<<rear<<"个数"<<arrCopy[rear-1]<<"结束"<<endl;
        cout<<"子数组和的最大值为: "<<max[0]<<endl;
        return 0;
    }
                         
    总结:做起来比较吃力,不过有了一定的体会,日后把心思多放在学习上一些,希望我能较快进入状态。
  • 相关阅读:
    Oracle 内存参数调优设置
    查询Oracle正在执行的sql语句及执行该语句的用户
    oracle审计详解
    Oracle数据库的性能调整
    性能监控工具的配置及使用
    windows端5款mysql客户端工具
    Oracle 11g密码过期问题及解决方案
    PLSQL安装、PLSQL汉化、激活
    Mercurial 安装及使用
    Servlet基础(二) Servlet的生命周期
  • 原文地址:https://www.cnblogs.com/LJT666/p/4388579.html
Copyright © 2020-2023  润新知