zoukankan      html  css  js  c++  java
  • 结对开发处理溢出

    组员:燕亚峰  20122914  

            王童博   20122823

    一、题目及要求:

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

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

                  每个元素是int32 类型的;

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

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

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

    二、设计思路:

          定义无符号长整型数组,长度设为1000;若所求子数组最大和的过程中出现sum〉LONG_MAX;则为溢出。输出溢出,程序无法计算结果。

    三、源程序

    #include<iostream.h>
    #include<stdlib.h>
    unsigned long max1(unsigned long arry[],int length)   
    {
        unsigned long sum=arry[0];
        unsigned long maxsum=arry[0];
        int flag =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;
                    flag=1;
                    break;
                }
            }
            if(maxsum<=sum)
            {
                maxsum=sum;
            }
        }
        if(flag==1)
        {
            cout<<"无返回值";
            return 0;
        }
        else
        {
           return maxsum;
        }
    }
    
    int main()
    {
        srand((unsigned)time(0));
        unsigned long a[1000];
        for(int i=0;i<1000;i++)
        {
            a[i]=(unsigned long)rand()%5+4294967290;
            cout<<a[i]<<"  ";
        }
        unsigned long q=max1(a,1000);
        cout<<endl;
        cout<<q;
        return 0;
    }

    四、截图

    五、实验心得

      这次实验要求实现1000个数,经过和童博商量,决定通过定义长度为1000的数组这个办法。定义无符号32位长整型,只验证了正数溢出的情况,对于负数溢出,没有做出验证这是个缺陷。我感觉一个团队不仅要团结,要么每一个队员都努力,同事还要有自己的特色。

    六、合照

  • 相关阅读:
    ASP.NET 配置log4net启用写错误日志功能
    jQuery formValidator表单验证插件
    jQuery Easy Validate Plugin
    https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题
    Request 分别获取具有相同 name 属性表单元素值
    asp.net开源CMS推荐
    客户对账单本月欠款
    AR 客户本月回款
    应收帐款汇总
    采购订单关闭之PL/SQL实现方法
  • 原文地址:https://www.cnblogs.com/yanyafeng/p/4378671.html
Copyright © 2011-2022 走看看