zoukankan      html  css  js  c++  java
  • 课堂练习之结对开发项目思想总结:返回一个整数数组中最大子数组的和

    一、思想过程

      老师课上让我们结对合作开发一个小程序,起初思想比较混乱,但在与雪东交流后一个想法渐渐浮现了出来,但在循环控制上仍然存在着缺陷。今天是满课的,所以我本打算在晚上自习的时候尝试去理清自己的思路,再与雪东进行交流。谁知在我刚到自习室,他便拿着笔记本来找我探讨,而且他已经写出了自己的想法,不过可能比较笨拙,在数组数量变化时需要一次一次的去输入程序,所以我们的探讨从如何实现老师的问题便到了如何更好的去实现老师的问题,增加程序的可扩展性。

      在此次合作中我们真的就像驾驶员和领航员一样,一台电脑,你一言我一语阐述着自己的想法,在纸上写着自己的思路,雪东就像驾驶员负责写代码,我在纸上写自己的思路,时而我们交换思想,完善自己的想法。最后我们基本确定了函数的框架,在书写代码过程中,还是一直讨论着在那里应该用哪个参数,应该如何去控制条件等等。下面是我们的源代码:

    二、源代码

    // ceshi.cpp : Defines the entry point for the console application.
    //
    
    #include "stdafx.h"
    #include "stdio.h"
    #include "stdlib.h"
    #include "time.h"
    
    int shuchu(int m[],int szcdx,int xhy)//m[]表示要测试的数组,szchx表示数组长度,xhy表示循环条件
    {
        int t,p;
        int max,sum;
        //缓存数组赋值
        int c[100];
        int v[100];
        for(t=szcdx-xhy-1;t<szcdx;t++)
        {
            c[t-szcdx+xhy+1]=m[t];
        }
        //循环
        for(t=xhy;t>=0;t--)
        {
            sum=0;
            for(p=0;p<=t;p++)
            {
                sum=sum+c[p];
            }
            v[t]=sum;
        }
        //循环输出最大值
        max=v[0];
        for(t=0;t<xhy+1;t++)
        {
            if(max<=v[t])
            {
                max=v[t];
            }
            printf("%d  ",v[t]);
        }
        
        return max;
    }
    
    int main(int argc, char* argv[])
    {
        int a[5]={7,-3,5,-10,-12};
        int maxx[100];
        
        for(int i=4;i>=0;i--)
        {
            printf("包含数组中第%d个数在内的所有相邻子数组的和:",5-i);
            maxx[i]=shuchu(a,5,i);        
            printf("
    %d
    
    ",maxx[i]);
        }
        int maxxx=maxx[0];
        for(i=0;i<100;i++)
        {
            if(maxxx<=maxx[i])
            {
                maxxx=maxx[i];
            }
        }
        printf("
    
    该数组的所有子数组的和的最大值:%d
    
    ",maxxx);
        return 0;
    }

    三、实验测试结果

    数组一:7,-3,5,-10,-12

    第二组数组:100,3,-20,-10,-12

    四、结对开发后收获和体会

         这次结对开发让我受益匪浅,首先我们两个人有着同样的目的,虽然有着不同的想法,但在交流中我们向着一个解决问题的更好的方向发展。不像一个人编程时感觉那么枯燥,自己有了想法和别人分享感觉也很开心,有一个人陪你想问题让你更加认真的去思考问题,有时自己想不到的对方恰恰想到了,就像我们在编写实现的函数的时候,在参数使用时我们说的都有过错误,但当出现分歧时,我们便仔细去寻找对的那个,这是一个人编程做不到的。在编写函数的时候,逻辑的确十分混论,我和雪东都一样有点迷糊的感觉,但我们总是在两个人都同意后在输入代码,所以很荣幸的说,我们的函数并未经过大改就顺利通过了编译。交流很重要,探讨很重要,成功就在前方。

        结对开发的确是一件令人开心的事,尤其是当我和雪东看到自己辛辛苦苦编出的函数得以成功实现的时候,我们都十分十分的开心,感谢老师给我们这样的机会!

    下面附图:

  • 相关阅读:
    Linux之ARP——种种
    Linux之内核参数——backlog/somaxconn
    CLOSE_WAIT、CLOSE_WAIT原因,危害,如何避免
    OVS——大杂烩
    Linux 网络栈——
    OpenShift——大杂烩
    协议之ICMP——种种
    Neutron 理解 (8): Neutron 是如何实现虚机防火墙的 [How Neutron Implements Security Group]
    Neutron 理解 (6): Neutron 是怎么实现虚拟三层网络的 [How Neutron implements virtual L3 network]
    CIDR地址块及其子网划分(内含原始IP地址分类及其子网划分的介绍)
  • 原文地址:https://www.cnblogs.com/gaoyang110/p/4345671.html
Copyright © 2011-2022 走看看