• 结对开发代码规范


    题目:求一个数组中子数组和最大的数组,并返回子数组中是由哪几个数组元素构成

    <1>首先我们组进行这个程序应该怎么实现的讨论,认为在一个数组中要想找到子数组和最大的数组,我们需要求出相邻数组的和然后进行比较找到最大的。

    <2>以数组【4,5,-3,-2,0】为例,先以第一个数为节点,然后进行第一个数与第二个数相加,如果和大于第一个节点,我们更改和的值,并把开始数组下标保存都first变量中,结束数组下标保存到final变量中,后面的依次类推.;在以第一个数为节点的情况都找完以后,我们开始以第二个数为节点,以后依次类推。通过这种方式我们就可以找到所有子数组的和并进行比较,把数组和最大的数放入sum。

    <3>开始的我们组编的代码有一些不足,代码如下

    for(int j=0;j<k;j++)
        {
            for(i=j+1;i<k;i++)
            {
            
                if(i!=j)
                {
                    sum=arr[j]+arr[i];
                    if(sum>max)
                    {
                        max=sum;
                        first=j;
                        last=i;
                    }
                }
                //sum=arr[j];
            }
        }

    其中我们没有考虑第一个数组为最大值,后经代码复审,更改了上述问题,代码如下

    #include "stdafx.h"
    
    int main(int argc, char* argv[])
    {
        int arr[100],sum,k;
        int max,first,last;
        printf("请输入数组的数字个数:");
        scanf("%d",&k);
        printf("请输入数组的内容:");
        for(int i=0;i<k;i++)
        {
            scanf("%d",&arr[i]);
        }
    
        sum=max=arr[0];
    
        for(int j=0;j<k;j++)
        {
            sum=arr[j];
            for(i=j;i<k;i++)
            {
            
                if(i!=j)
                {
                    sum=sum+arr[i];
                    if(sum>max)
                    {
                        max=sum;
                        first=j;
                        last=i;
                    }
                }
                else
                {
                    if(arr[i]>max)
                    {
                        max=arr[i];
                        first=j;
                        last=i;
                    }
                }
            }
        }
    
        printf("数组arr[%d]-arr[%d]的和最大,最大值为:%d
    ",first,last,max);
    
        return 0;
    }

  • 相关阅读:
    面试:第四章:项目介绍
    面试:第八章:SpringMVC、Springboot、Mybatis、Dubbo、Zookeeper、Redis、Elasticsearch、Nginx 、Fastdfs、ActiveMQ
    HDU2021发工资咯:)
    HDU2029Palindromes _easy version
    js的Prototype属性 解释及常用方法
    backgroundposition 用法详细介绍
    递归算法与迭代算法的区别
    CSS Position 定位属性介绍
    JavaScript的事件绑定及深入
    CSS网页中的相对定位与绝对定位
  • 原文地址:https://www.cnblogs.com/zhangbo2011/p/3591910.html
Copyright © 2020-2023  润新知