zoukankan      html  css  js  c++  java
  • 一维数组代码实现可视化

    要求:

    1  按 单步执行 键, 在 GUI 看到你的程序是如何一步一步算出目前最大子数组的范围,当前计算到的临时子数组是在哪里,等等。 最好用不同的颜色标识不同的状态。
    2  按 自动运行 键, 在 GUI 看到程序自动运行,并自动显示过程, 每次改变状态的时候要稍作停留 (例如 1 秒钟的时间)
    3  最好有一个 倒带 / 回滚 的键, 让用户可以看清楚关键的几步。

    设计思想:

     本次实现可视化的过程中在如何输出目前最大子数组和是由哪几个数组元素组成出现了较大问题。

    源代码:

    import java.util.Scanner;
    
    public class sum02 {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入数组的长度为:");
            int n=sc.nextInt();
            int[] c = new int[n];
            System.out.println("请输入"+n+"个整数");
            for(int i=0;i<n;i++)
            {
                c[i] = (int) sc.nextLong();
            }
            
            
            int f=0;//定义整形变量f,为子数组最大值
            int sum=0;//定义整形变量sum,为子数组求和
            int p=1;
            for(int i=0;i<n;i++)
            {
                System.out.println("当前为第"+p+"步");
                int s=sum;
                sum = sum+c[i];
                System.out.println("此时的数据相加过程为:数组中的第"+(i+1)+"个数字与已有的sum值相加");
                if(sum < 0)
                {
                    sum=0;
                    //System.out.println("判断sum值是否小于0,小于0,则sum变为初值0");
                }
                if(sum > f)
                {
                    f = sum;
                    System.out.println("此时子数组最大和为:"+f);
                }
                System.out.println("此时已经检验"+p+"个数组元素");
                p++;
            }
            
            
            if(sum == 0)
            {
                for(int i=0;i<n;i++)
                {
                    System.out.println("当前为第"+p+"步");
                    
                    if(i == 0)
                    {
                        f = c[i];
                    }
                    if(f < c[i])
                    {
                        f = c[i];
                    }
                }
            }
            
            System.out.println("该数组的子数组之和的最大值为:"+f);
    
        }
    
    }

    截图:

  • 相关阅读:
    字段与表的对应关系
    java初学代码,还不太熟练
    编程学习心得
    ps中经常遇到的问题
    R语言矩阵运算加速
    写代码过程中一些数字推理公式
    EXCEL中常用的函数
    css样式中常见的属性
    R语言的基本矩阵运算
    excel常用的函数
  • 原文地址:https://www.cnblogs.com/Qi77/p/10771148.html
Copyright © 2011-2022 走看看