给定数组求数组中和最大子数组的和


//20173626 郑锦
package 数组求和; import java.util.Scanner;
public class shuzu { public static void main(String[] args) { //定义一个数组 int s[]=new int[5]; int a=0; int amax = 0; int max=0; for(;a<5;a++) { //键盘输入5个数 Scanner in=new Scanner(System.in); System.out.println("请输入数:"); s[a]=in.nextInt(); } //找子数组并相加比较数组和的大小直到找到最大值输出 for(int b=0;b<4;b++){ int sum=0; int asum=s[b]; for(int i=1;b+i<5;i++) { sum=asum+s[b+i]; if(b==0) { max=sum; }else { if(sum>max) { max=sum; } } asum=sum; } if(b==0){ amax=max; }else { if(max>amax){ amax=max; } } } System.out.println("数组最大和为:"+amax); } }

拿到这样的题目首先要仔细的审查题意,了解题目在说什么,理解了之后先别急着敲代码,应该先在纸上或者电脑上把大概思路写出来,这样有利于做题的进展,

针对于这一题,

首先定义一个含有5个数的数组

然后用循环键盘输入五个数,这里用到了scanner语句

然后就是一层一层的循环,先是根据子数组第一个数构成一个for循环,在这个for循环里面还有一个根据子数组第一个数后面要加的数形成的for循环,然后在一系列比较之后最后用System返回想要返回的最大值,最后成功解决!

原文地址:https://www.cnblogs.com/jinseliunian/p/10491945.html