zoukankan      html  css  js  c++  java
  • 第六周课堂测试

    设计思想:

    在前一次作业的基础上 ,当循环到达最后一位数,即len[num-1]时,对最后一个数进行判断,如果大于零(若小于零,则没有必要了),则重置i(因为循环开始时便是i++,所以这里重置i为-1);

    同时对另外一个计数变量m(统计循环次数,方便进行跳出循环操作,防止陷入无限循环)进行叠加,之后对m进行判断,当m=2时,就要进行第三次循环了,而这次循环是无效的,所以此时利用改变i值跳出循环;

    统计完成,输出最终结果;

    源代码:

    package max;
    import java.util.*;
    public class Array_max {
        public static int Cin(int i){
            Scanner in=new Scanner(System.in);
            System.out.println("请输入第"+(i+1)+"个数");
            int b=in.nextInt();
            return b;
        }
        public static int Get(int len[],int num){
            int max = 0;
            int max0=0;
            int m=0;
            for(int i=0;i<num;i++){
                if(len[i]>0){
                    max=max+len[i];
                }
                else{
                    if(max>max0){
                        max0=max;
                    }
                    max=0;
                }
                if(i==(num-1)&&len[num-1]>0){
                    i=-1;
                    m++;
                }
                if(m==2){
                    i=num;
                }
            }
            if(max>max0){
                max0=max;
            }
            return max0;
        }
        public static void main(String args[]){
            Scanner in=new Scanner(System.in);
            System.out.println("请输入数组数字个数:");
            int num=in.nextInt();
            int len[]=new int[num];
            for(int i=0;i<num;i++){
                len[i]=Cin(i);
            }
            int max=Get(len,num);
            System.out.print("子数组和的最大值为:"+max);
        }
    }

    结果截图:

    总结:

    现在在想这次这样做会不会影响下次进阶操作呢,感觉这样做有点简单,但是确实实现功能了!

  • 相关阅读:
    cross-domain
    【转】React、Vue访问NotFound
    Flutter环境配置
    antd遇见的坑
    npm源设置
    React中的生命周期函数
    【备忘】javascript原型、Function、eval、闭包、json处理、类、arguments不定
    ADB获取手机信息
    selenium操作
    操作execl
  • 原文地址:https://www.cnblogs.com/dawn-sky/p/5378081.html
Copyright © 2011-2022 走看看