zoukankan      html  css  js  c++  java
  • 软件工程-个人作业1

    1、生成一个整型数组

    2、生成子数组:按照顺序遍历,以遍历到的数组元素为基准,依次累加求和,将每一个基准生成的子数组和存在第二个数组中。

    3、求出每个子数组的和:将每一个基准生成的子数组和求出最大值存在第三个数组里。

    4、求出最大子数组的和:求出第三个数组里的最大数组元素即为最大子数组的和。

    5、输出

    1、累加求和,一开始没有使用sum进行中间传值,而是直接传值给第二个数组,由于数组下标的错误导致累加求和失败

    2、算法复杂度太大

     1 package main;
     2 
     3 import java.util.Arrays;
     4 import java.util.Scanner;
     5 
     6 public class main {
     7     public static void main(String[] args) {
     8         Scanner cin=new Scanner(System.in);
     9         int[] a = new int[5];
    10         int[] b = new int[5];
    11         int[] c = new int[5];
    12 //        生成整型数组
    13         for (int i = 0; i < a.length; i++) {
    14             a[i]=cin.nextInt();
    15         }
    16 
    17         for (int j = 0; j < c.length; j++) {
    18         int sum=0;
    19         for (int i = j; i < a.length; i++) {//生成各个子数组
    20             sum=a[i]+sum;                   //(连续的一个和多个整数组成)
    21             b[i]=sum;                       //求出各个子数组的和
    22         }
    23         int max=b[0];                       //比较各个子数组的和的大小
    24         for (int i = j; i < b.length; i++) {
    25             if(max<b[i])max=b[i];
    26         }
    27         c[j]=max;
    28         }
    29         int max=c[0];
    30         for (int i = 0; i < c.length; i++) {//输出最大子数组的和
    31             if(max<c[i])max=c[i];
    32         }
    33         System.out.println(Arrays.toString(a));
    34         System.out.println(Arrays.toString(c));
    35         System.out.println(max);
    36     }
    37 }

     

    本次个人作业只能使用复杂度较大的程序实现其功能,一开始思路不够清晰,使用自然语言写出思路,再使用代码实现每一个模块,将复杂问题简单化,简单问题逻辑化。

  • 相关阅读:
    连载日记
    自我介绍
    test0710 二分专题
    test0709 搜索专题
    test0705
    test0704
    [题解] [HNOI2015]落忆枫音
    test0606
    test0523
    备份
  • 原文地址:https://www.cnblogs.com/quxiangjia/p/10513483.html
Copyright © 2011-2022 走看看