zoukankan      html  css  js  c++  java
  • 结对开发---二维数组

    结对:

    严雅芳 20132988

    王欣欣 20132990

    (1)设计思路:

     二维数组的求子数组的最大和,在本次设计中利用了一维数组的思路:从第一个数开始把数组相加,每加一个数对和进行判断,如果小于零,抛弃当前值,如果大于零,下一个数与零比较,小于零时,先将最大值与之前的和比较,在让和加上这个数,如果大于零,直接让和加上这个数,再取最大值和和之间的最大值。
    因为是二维数组:当到第n行时,对第n行和其前面的n-1、n-2.....0行进行设计,让第n行和其前面列数相同的每1、2、3....n行的数相加,他们的和可以看成一个一维数组进行计算
     
    (2)源代码:
     1 package rrr;
     2 
     3 import java.util.Random;
     4 import java.util.Scanner;
     5 
     6 public class Test {
     7 
     8     /**
     9      * @param args
    10      */
    11     public static void main(String[] args) {
    12         // TODO Auto-generated method stub
    13         System.out.println("请输入数组的行数和列数:");
    14         Scanner sc=new Scanner(System.in);
    15         int n=sc.nextInt();
    16         int m=sc.nextInt();
    17         int a[][]=new int[n][m];
    18         Random rand=new Random();
    19         int Sum=0;
    20         int N=0;
    21         int i=0;
    22         int e=0;
    23         System.out.print("请输入数字范围:");
    24         int m1=sc.nextInt();
    25         int m2=sc.nextInt();
    26         for(e=0;e<m;e++)
    27         {
    28             for(i=0;i<n;i++)
    29             {
    30                 a[i][e]=(int) (m1+Math.random()*(m2-m1+1));
    31                 System.out.print(a[i][e]+"  ");
    32             }
    33             System.out.println();
    34         }
    35         int M=a[0][0];
    36         for(e=0;e<m;e++)
    37         {
    38             int y=e;
    39             do
    40             {
    41                for(i=0;i<n;i++)
    42                {
    43                    for(int u=e;u>=y;u--)
    44                    {
    45                        Sum=Sum+a[i][u];
    46                        }
    47                     N=N+Sum;
    48                     if(N>=M)
    49                     {
    50                         M=N;
    51                     }
    52                     if(N<0)
    53                     {
    54                         N=0;
    55                     }
    56                     Sum=0;
    57                }
    58                y--;
    59                N=0;
    60             }while(y>=0);
    61         }
    62         System.out.println("最大:"+M);
    63     }
    64 }

    (3)截图:

    (4)合作过程:

    在本次合作中,我负责对程序的编写,欣欣负责对程序的检测,在她测试时由于数值结对时的错误而显示的结果错误,我们在对程序进行分析后对错误进行了改正。在合作时真的应该多听取对方的建议并加以改正,才能使编程过程更加顺畅。

    (5)工作照:

  • 相关阅读:
    原型prototype
    this
    作用域、闭包、模块
    嵌入式面试资料
    一些嵌入式面试题目的集锦
    优先级反转
    struct和union的区别
    (转)typedef和#define的用法与区别
    const 和 #define区别
    白话经典算法系列之 快速排序 快速搞定
  • 原文地址:https://www.cnblogs.com/1305yyf/p/4403114.html
Copyright © 2011-2022 走看看