zoukankan      html  css  js  c++  java
  • 求数组最大字数组之和第一部

     
    一、    题目要求:返回整数数组中最大的子数组的和
    输入一个整形数组,数组里有正数也有负数。
    数组中连续的一个或多个整数组成一个数组,每个子数组都有一个和。
    二、    设计思路:
    首先输入一串数组,定义max为最大值,定义sum为求和的结果;从头开始首先将数组的第一个数和sum相加存到sum中,判断a[i]的正负,为正数的时候判断max和sum的的大小,如果为负数将sum置为0;如果最后结果max为0,则代表数组中都为负数,此时只需要找出最大的一个负数就可以。输出最大的子数组之和。
     1 #include<iostream>
     2 using namespace std;
     3 int main()
     4 {
     5 int a[100],N;
     6 int sum=0,max=0;
     7 cout<<"Please input the number of the array:";
     8 cin>>N;
     9 cout<<"Please input "<<N<<"number:";
    10 for(int i=0;i<N;i++)
    11 cin>>a[i];
    12 for(int i=0;i<N;i++)
    13 {
    14    sum+=a[i];//将每位求和赋给sum
    15    if(a[i]>=0)
    16   {
    17      if(max<sum)
    18     {
    19        max=sum;
    20     }
    21   }
    22    if(sum<0)
    23    {
    24        sum=0;
    25    }
    26 }
    27 if(max==0)
    28 {
    29     max=a[0];
    30     for(int i=1;i<N;i++)
    31     {
    32       if(a[i]>max)
    33       max=a[i];
    34     }
    35 }
    36 cout<<"The max is:"<<max<<endl;
    37 return 0;
    38 }

    三、截图
    四、    用时:计划花费4个小时,实际花费了7个小时;其中包括改错调试程序和赵程序的设计思路;
    五、    体会:这次实验相比前几次实验还是比较简单的,只要找到设计的思路编程实现起来还是比较容易的。 
     
  • 相关阅读:
    (转)很简短,但读完你会感触良多!
    (转)让 win8 快速通过认证的5个提示
    WPF 资源路径解析
    47、SimpleOrientationSensor
    45、SplashScreen
    让IE6也支持position:fixed
    utf8编码引起js输出中文乱码的解决办法(实用)
    javascript的currying函数
    sicily 1036. Crypto Columns
    sicily 6774. Buying Mortadella
  • 原文地址:https://www.cnblogs.com/lvlan/p/5323945.html
Copyright © 2011-2022 走看看