zoukankan      html  css  js  c++  java
  • 小组作业提交报告

                                                                              关于求整数数组最大子数组和的设计文档

                                                                                                             ——杨波 崔海营

          当看到问题时,我们首先选用了一个小例子进行分析,我们假设数组为1 ,2, 3, 4, 5,要求得所有子数组的个数为{[n*(n-1)]/2}+n,所以可算出该例子中所有子数组的个数是15。进而我们就讨论如何编码能够得到所有的子数组的和,然后再通过比较求得最大的子数组之和,进而得到最终结果。整个讨论过程如下图所示:

    经过讨论后我们的到了如下的代码:

    #include<iostream>
    using namespace std;
    int main()
    {
        int    num[5];
        int sum[15];
        int k=0;
        int temp;
        int max;
        for (int i=0;i<5;i++)
        {
          cin>>num[i];
        }  
        for( i=0;i<5;i++)
       {
           temp=num[i];
           sum[k]=temp;
           k++;
           for(int j=i+1;j<5;j++)
           {
                
               temp=temp+num[j];
               sum[k]=temp;
               k++;
           }
       }
       max=sum[0];
       for(int j=0;j<15;j++)
       {
           if(max<sum[j])
           {
               max=sum[j];
           }
       }
       cout<<"最大子数组和"<<max<<endl;
       return 0;
    } 

    并且经过测试可以得到正确的结果:
    测试:5  -1  8  -5  9

    可得到结果:最大子数组的和为16

         在代码的编译测试阶段所遇到的问题:

          1).头文件书写错误,可能是太粗心了;

          2).变量j没有定义,编写时细心程度不够。

     

               

  • 相关阅读:
    UIApplication sharedApplication详细解释-IOS
    CocoaPods版本升级
    iOS更改状态栏颜色__
    代码实现UIPickerView
    在UINavigation上添加UISearchBar
    runtime实际应用---
    runtime实际应用
    runtime 运行时机制 完全解读(二)
    RunTime机制--原理(一)
    同步推笔试坑录
  • 原文地址:https://www.cnblogs.com/chysly/p/3591607.html
Copyright © 2011-2022 走看看