zoukankan      html  css  js  c++  java
  • 整数数组中最大子数组的和

    编程思路:从该数组里随机生成的数中,从最后一个开始进入循环,如果这个数大于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

  • 相关阅读:
    linux环境变量
    linux命令系列 ls
    为什么寄存器比内存快?
    Python RE
    Python List Comprehension
    转:C++ 关键字 inline详细介绍
    转:c++里关于cerr,clog,cout三者的区别
    CS项目总结
    selenium 添加动态隧道代理
    python 进程/线程/协程 测试
  • 原文地址:https://www.cnblogs.com/chenjie00/p/4359431.html
Copyright © 2011-2022 走看看