一:题目要求

  • 题目(1):最大连续子数组和(最大子段和)
    背景

问题: 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,a[i]+a[i+1]+…+a[j]},1<=i<=j<=n
例如,当(a[1],a[2],a[3],a[4],a[5],a[6])=(-2,11,-4,13,-5,-2)时,最大子段和为20。

二:题目分析

在了解了题目以后我认为我应该使用循环和条件判断来进行编写,第一次我选用了将所有的情况循环出来,然后进行比较得出结果的方法来进行编写,后来想了想实在是太麻烦,所以我还简化一遍程序,将三层的循环简化为了两层的一个循环然后加上条件判断来解决这个问题。

三:程序代码

  • 代码如下所示

四:测试

  • 选用语句测试覆盖条件覆盖来进行测试,分别选用了都是整数,正数与负数交叉,都是负数来满足测试条件,测试结果如下所示![]

五:心得体会

  • 在这次实验当中,我自己动手编写了一个简单的程序,并且根据第二次作业的方法来进行了测试,并且对于五个覆盖标准有了一个更为直观的认识,我认为这次作业很有意思,也很有意义,我会更好的去完成以后的作业。

六:程序代码(CODING)