1、代码;
import java.util.Scanner; public class Max1 { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("输入个数:"); int k = in.nextInt(); int[] shu = new int [k];//定义数组 Scanner scanner=new Scanner(System.in); System.out.println("请输入"+k+"个整数:"); for(int i=0;i<k;i++){ shu[i]=in.nextInt(); } System.out.println("数组中连续数的最大值为:"+MaxSum(shu,k)); } static int MaxSum(int[] arr,int k) { int Sum=0; int maxSum=0; int len=k; int d; int i; int j; for(j=0;j<len;j++) { for (i=j;i<len+j;i++) { if(i>len-1) d=i-len; else d=i; Sum+=arr[d]; if(Sum<0) { Sum=0; } if(Sum>maxSum) { maxSum=Sum; } } Sum=0; } if(maxSum==0) { for(i=0;i<len;i++) { if(i==0) { maxSum=arr[i]; } if(arr[i]>maxSum) { maxSum=arr[i]; } } } return maxSum; } }
2、结果截图
3、设计思想:
遍历所有数组的数字相加和,然后比较输出和中的最大值
4、出现的问题:
首尾相接无法实现
5、解决办法:
利用双循环实现。