• 第六周课堂测试


    设计思想:

    在前一次作业的基础上 ,当循环到达最后一位数,即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);
        }
    }

    结果截图:

    总结:

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

  • 相关阅读:
    python之函数对象、函数嵌套、名称空间与作用域、装饰器
    python之函数
    python基础-小练习
    python基础之文件操作
    python基础之字符编码
    web开发-Django博客系统
    HotSpot的算法实现
    垃圾回收机制(GC)
    Java注意点...
    JVM内存区域及对象
  • 原文地址:https://www.cnblogs.com/dawn-sky/p/5378081.html
Copyright © 2020-2023  润新知