程序設計思想:
依次將數組划分開,先判斷一個元素的單個數組大小,接下來兩個,依次上升,最后將所得結果進行比較賦值,輸出最大結果。
1 package ketangTest;
2 //張生輝,康治家 2017.3.20
3 public class Test {
4 public static void main(String args[]){
5 int b[]={-7,9,-2,84};
6 int a[]={-7,9,-2,84,-7,9,-2,84};
7 int max,max2,max3,max4;
8 max=a[0];
9 int Max=max;//Max值每次都與最大值判斷,之后替代
10 for(int i=0;i<a.length;i++)
11 {
12 if(a[i]>max)
13 {
14 max=a[i];
15 }
16 max2=max;
17 if(i<a.length-1)//處理越界問題,判斷越界跳過即可
18 {
19 if(a[i]+a[i+1]>max2)
20 {
21 max2=a[i]+a[i+1];
22 }
23 }
24 max3=max2;
25 if(max3>Max)
26 {
27 Max=max3;
28 }
29 if(i<a.length-2)
30 {
31 if(a[i]+a[i+1]+a[i+2]>max3)
32 {
33 max3=a[i]+a[i+1]+a[i+2];
34 }
35 }
36 max4=max3;
37 if(max4>Max)
38 {
39 Max=max4;
40 }
41 if(i<a.length-3)
42 {
43 if(a[i]+a[i+1]+a[i+2]+a[i+3]>max4)
44 {
45 max4=a[i]+a[i+1]+a[i+2]+a[i+3];
46 }
47 }
48 if(max4>Max)
49 {
50 Max=max4;
51 }
52
53 }
54 System.out.println(Max);
55 }
56
57 }
程序運行結果截圖:
程序編譯錯誤結果分析:
因為在判斷數組時需要利用一個For循環,最后導致在判斷一個元素的For循環下,判斷兩個及以上的時候會出現越界,於是加入判斷條件來限制就可以解決這問題。