软工第二周个人作业

题目:

定义一个整型数组,返回该数组中子数组和的最大值!

思路:

1.首先进行数组的遍历,对最大值进行初始化为数组的第一个元素,每次遍历,求得该子数组的和。

2.将上值与最大值作max(a,b)操作,然后进行下一次的遍历,直到结束。

方法:

用到三个for循环。

第一个 用来完成所有数组的循环。

第二个用来表示从第几个元素开始,寻找子数组。

第三个 用来获取每个子数组的和,等到遍历完全结束,返回最大值输出。

 1 import java.util.Scanner;
 2 
 3 public class shuzu {
 4     public static void main(String[] args){
 5         int number,maxsum;//定义2个整型
 6         
 7         int a;
 8         Scanner in = new Scanner(System.in);//输入
 9         System.out.println("请输入数组大小");
10         number=in.nextInt();//将输入值存于number1·
11         int array[]=new int[number];//由上述操作定义数组
12         System.out.println("请输入数组的值:");
13         for(a=0;a<number;a++) {
14                  array[a]=in.nextInt();
15         }  //数组定义完成
16         //查询最大数组
17      
18         int i,j,k;
19         int max[]=new int [number];
20         for(i=0;i<number;i++){
21             max[i]=array[i];
22             k=array[i];
23             for(j=i+1;j<number;j++){
24                 k=k+array[j];
25                 if(k>max[i])
26                 {max[i]=k;}
27             }
28         }
29         int m=max[0];
30         for(i=1;i<number;i++)
31         {
32             if(max[i]>m)
33             {m=max[i];}
34         }
35         System.out.println("所有连续子数组和的最大值为:"+m);
36                 
37     }
38 }
shuzu

 

posted @ 2019-03-10 22:33  夜神风  阅读(120)  评论(0)    收藏  举报