您的位置:首页 > 其它

课后作业(求最大数组)

2016-04-08 20:24 246 查看
思路:

设定三个变量,result分别是(子数组中的和的最大值,初始值为array[0])、result(当前子数组的和,初始值为array[0]);

先让用户自己设定数组的长度,之后输入数组。从数组第一位开始遍历数组, max=max+array[i],若result<0,则令max=0;若max>result,则result=max;最后当循环运行结束后,输出最后result的值。

问题

计算结果时for循环起始值应从1开始,若从0起始的话会多算一遍数组array[0];

package shuzhi;
import java.util.Scanner;
public class shuzuzhi {

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
System.out.println("请输入数组长度:");
int n=in.nextInt();

int array[]=new int
;
System.out.println("请输入相应的整数:");
for(int i=0;i<n;i++)
{
array[i]=in.nextInt();
}

int max=array[0];
int result =array[0];
for(int i=1;i<n;i++)
{
max=max+array[i];
if(max<0)
{
max=0;
}
if(max>result)
{
result=max;
}

}

System.out.print("子数组的最大值为:"+result);

}

}


截图:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: