软件工程个人作业04

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

设计思路:先规定10个数,依次进行求和,如果得到的总和是正数,则与之前的数比较大小,得到一个最大值保留下来,如果总和是负数,则把之前的最大值放到另一个数组中,并且把总和归零,在下一位重新进行相加。

源代码:

public class Zishuzu {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        int max;
        int sum=0;
        int a[] = {8,9,-20,0,3,-5,7,0,-0,0};
        int b[] = new int [10];
        int mark=0;
        max = a[0];
        for(int i=0; i<10; i++)
        {
            sum = sum + a[i];
            if(sum>=0)
            {
                if(max<=sum)
                {
                    max = sum;
                }
            }
            if(sum<0)
            {
                sum = 0;
                mark+=1;
            }
        }
        for(int i=0; i<mark;i++)
        {
            if(max < b[i])
            {
                max = b[i];
            }
        }
        System.out.println("最大值      是:"+max);                                                                                                            }

}
main

结果截图:

 

原文地址:https://www.cnblogs.com/xiaosongbiog/p/5372718.html