码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-10-14 17:52:20      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:alt   整数   工作   ima   类型   最大   整型   inf   using   

小组成员:

                  姓名:许兴华                 学号:20160700

                             卢萌                              20160702

一、实验要求

1、程序必须能处理1000个元素;

2、每个元素是int32类型的,出现子数组之和大于整型表示的最大范围会出现什么情况。

两人结对完成编程任务。

一人主要负责程序分析,代码编程。

一人负责代码复审和代码测试计划。

发表一篇博客文章讲述两人合作中的过程、体会以及如何解决冲突(附结对开发的工作照)

 二、设计思想

sumsofar从初值0变为到目前为止的最大子数组的和,maxendinghere记录从当前位置开始往前几个数的和的最大值,比较sumsofar和maxendinghere,把最大值赋予sumsofar

三、源代码程序

#include <stdlib.h>
#include<iostream>
using namespace std;
int max(int a,int b)
{
    if(a>b)
    {
       return a;
    }
    else
    {
       return b;
    }
}
int maxsum(int a[], int n)
{
    int i;
    int maxsofar = 0;  //maxsofar记录到目前为止的的最大值
    int maxendinghere = 0; //maxendinghere记录从当前位置开始往前几个连续的数的和的最大值
    for (i = 0; i < n; i++)
    {
        maxendinghere = max(maxendinghere + a[i], 0);
        maxsofar = max(maxsofar, maxendinghere);
    }
    return maxsofar;
}
int main()
{
    int n, i=0;
    cout<<"请输入个数:";
    cin>>n;
    cout<<"请输入数组:";
    int a[100000]={0};
    for(i=0;i<n;i++) 
    {
        cin>>a[i];
    }
    int max=maxsum(a, n);
    cout << "最大子数组的和为:" << max << endl;
    system("pause"); 
    return 0;
}

 

 

四、程序运行截图

 技术分享图片

五、超出int32范围

现象:计算出错

,如图:

技术分享图片

 六、时间记录日志

技术分享图片

七、遇到的困难

1、不懂int32啥意思

2、没写分号,大括号和分号要在英文状态下

3、程序运行中出现闪退

八、解决方法

1、查资料,问同学

2、调试出来的

3、百度出来的

技术分享图片技术分享图片

九、总结

在编写程序的时候,要认真仔细,注意中英文状态的切换;

要边调试边写程序,避免最后代码过多,不容易寻找错误;

编写程序的过程中,要适量的写注释,避免思路丢失,时间一长,自己也看不懂。

 

 

 

 

 

 

 

 

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

标签:alt   整数   工作   ima   类型   最大   整型   inf   using   

原文地址:https://www.cnblogs.com/1756696425ss/p/9783967.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!