zoukankan      html  css  js  c++  java
  • 返回一个整数数组中最大的子数组的和。

    遍历一遍,找连续的正数求和,同时比较求和的大小,最后输出最大的和就可以。

    源代码:

    #include <iostream>
    #include<time.h>
    using namespace std;
    int maxSum(int*a,int n)
    {
     int sum=0;
     int b=0;
     for(int i=0;i<n;i++)
     {
      if(b<0)
       b=a[i];
      else
       b+=a[i];
      if(sum<b)
       sum=b;
     }
     return sum;
    }
    int main()
    {
     int n=1000,k=0;
     int*a=new int [n];
     for(int i=0;i<n;i++)
     {
      a[i]=rand()%20-10;
     }
     for( i=0;i<n;i++)
     {
     cout<<a[i]<<"";
    }
    for(i=0;i<n;i++)
    {
     if(a[i]<0)
     {
      k++;
     }
    }
    if(n==k)
    {
     for(int i=1;i<n;i++)
     {
      k=a[0];
      if(a[i]>k)
      {
       k=a[i];
     }
     }
     cout<<"最大和为:"<<k<<endl;
    }
    else
    {
     cout<<"最大和为:"<<maxSum(a,n)<<endl;
    }
    cout<<"输入数组长度:"<<endl;
    cin>>n;
    cout<<"请输入数组元素:"<<endl;
    for(i=0;i<n;i++)
    {
     cin>>a[i];
    }
    cout<<endl;
    for( i=0;i<n;i++)
    {
     if(a[i]<0)
     {
      k++;
     }
    }
    if(n==k)
    {
     for(int i=1;i<n;i++)
     {
      k=a[0];
      if(a[i]>k)
      {
       k=a[i];
      }
     }
     cout<<"最大和为:"<<k<<endl;
    }
    else
    {
     cout<<"最大和为:"<<maxSum(a,n)<<endl;
    }
    return 0;
    }

     

  • 相关阅读:
    移植stemwin笔记01 emwin文档说明
    emwin笔记
    stm32ucosiii 笔记03
    stm32操作系统ucosiii笔记02
    ucosiii笔记01
    keil4与proteus联机调试
    计算机网络一:OSI七层、TCP/IP五层与TCP/IP四层
    数据结构-概述
    RS232、RS485和RS422
    UART串口通讯协议
  • 原文地址:https://www.cnblogs.com/ziteng1001/p/9787205.html
Copyright © 2011-2022 走看看