• 整数数组中最大子数组的和


    编程思路:从该数组里随机生成的数中,从最后一个开始进入循环,如果这个数大于0,定义一个变量sum,并初始化它的值为0,把数组里的数加到sum上,如果sum的值大于max_sum(即最大子数组的和,初始化为0),把sum的值赋给max_sum,如果sum的值小于0,令sum的值为0,最后输出最大子数组的和;

    程序代码:

    #include <iostream>
    
    #define N 10
    
    using namespace std;
    
    void main()
    
    {
    
     int a[N];//定义一个数组
    
       cout<<"数组的所有成员有:"<<endl;
    
     for(int i=0;i<N;i++)
    
     {
    
      a[i]=rand()%N-N/2;  
    
     cout<<a[i]<<" ";  
    
    }
    
     int sum=0,max_sum=0;
    
       for(int i=0;i<N;i++)  
    
    {  
    
     sum=sum+a[N-i-1];  
    
     if(a[N-i-1]>=0)  
    
     {  
    
      if(max_sum<sum)   
    
      max_sum=sum;  
    
      if(sum<0)  
    
       sum=0;  
    
     }
    
     }
    
     cout<<endl;  
    
    cout<<"最大子数组的和为:"<<max_sum<<endl;
    
    }

    结果截图:

    总结:使用rand()函数随机生成数的时候,它会生成0-1之间的数,如果对他进行取余运算即rand()%N,则会生成0-N之间的数,要让它随机生成的数中有负数的话,要在它的基础上减去N的一半即rand()%N-N/2;

    学生:陈杰 日期:2015/3/23  教师:王建民 课程:软件工程概述

    日期

    开始时间

    结束时间

    中断时间

    净时间

    活动

    备注

    3/21

    10:00

    11:00

    60

    编程序

    3/22

    14:00

    15:00

    20

    40

    查错

    3/23

    21:10

    21:00

    30

    发博客

     

     缺陷记录日志:

    日期

    编号

    类型

    引入阶段

    排除阶段

    修复时间

    修复缺陷

    22/3

    1

    随机生成负数

    编码

    编译

    20

    查找资料

       22/3

    2

    连续子数组

    编码

    编译

    50

    仔细思考

     周活动总结表:

    活动

    上课

    编写代码

    看书

    休息娱乐

    总计

     周一

    480

    480

    周六

    70

    400

    470

    周日

    100

    50

    350

    500

    总计

    480

    170

    50

    750

    1450

  • 相关阅读:
    Commonjs,AMD,CMD和UMD的差异
    ajax中datatype的json和jsonp
    bufferd对象详解
    NodeJS中Buffer模块详解
    Vue 定义组件模板的七种方式(一般用单文件组件更好)
    vuejs 单文件组件.vue 文件
    git clone 带用户名密码
    去掉一组整型数组重复的值
    Vue中在组件销毁时清除定时器(setInterval)
    使用Nginx实现反向代理
  • 原文地址:https://www.cnblogs.com/chenjie00/p/4359431.html
Copyright © 2020-2023  润新知