• 输出一个数组中最大和的子数组并且和不溢出


    组员 石鹤李海超

    一、题目

    输出一个数组中最大和的子数组,数组为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;
    }

    四、结果截图

    五、实验心得

    我俩讨论了好久,也没想出溢出后怎么处理,最后只能输出结果溢出。

    其他过程中没有什么太大困难,只是把以前程序作了一些改进,希望以后继续进步。

    六、相片

  • 相关阅读:
    Elasticsearch Windows下安装及配置集群
    .Net文件压缩
    DateHelper
    lambda Helper
    Log4net的使用
    python3之rabbitMQ
    python3之协程
    python3之paramiko模块
    python3之redis
    redis
  • 原文地址:https://www.cnblogs.com/weaponx/p/4378800.html
Copyright © 2020-2023  润新知