设计思想:根据传入的数组从第一个数字加起,然后如果结果出现负数那么将和设置为0。
在过程中将和更新到数字最大和,判断如果当前和大于最大值那么就更新。
出现的问题:中间没有想到更新最大数组和的办法,倒置如5 -2 -3 1这种情况最大值输出为1。解决办法:更新和的最大值
源程序代码:
1 package test; 2 3 import javax.swing.JOptionPane; 4 5 public class Test { 6 public static void main(String[] args) 7 { 8 int[] shuzu =new int [4]; 9 int number_he=0,number_hezuidazhi=0; 10 for(int i=0;i<4;i++) 11 { 12 String str=JOptionPane.showInputDialog("请输入第"+ (i+1) + "数字:"); 13 shuzu[i]=Integer.parseInt(str); 14 } 15 for(int m=0;m<4;m++) 16 { 17 number_he=number_he+shuzu[m]; 18 if(number_hezuidazhi<number_he)//从中挑选的和如果大于已知最大值那么更新最大值 19 { 20 number_hezuidazhi=number_he; 21 } 22 if(number_he<0)//如果判断出和小于0那么重置数组和 23 { 24 number_he=0; 25 } 26 } 27 JOptionPane.showMessageDialog(null, "最大数组和为" + number_hezuidazhi); 28 } 29
30 }
结果截图:
总结:java问题解决很依赖于数学水平