1.源代码
package 加减乘除; 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.总结
最后功能成功实现,要进行两次for循环来计算遍历所有子数组的和求出最大值
时间: 2024-10-29 19:06:43