求数组最大字数组之和第一部
Posted 岚兰蓝
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求数组最大字数组之和第一部相关的知识,希望对你有一定的参考价值。
一、 题目要求:返回整数数组中最大的子数组的和 输入一个整形数组,数组里有正数也有负数。 数组中连续的一个或多个整数组成一个数组,每个子数组都有一个和。 二、 设计思路: 首先输入一串数组,定义max为最大值,定义sum为求和的结果;从头开始首先将数组的第一个数和sum相加存到sum中,判断a[i]的正负,为正数的时候判断max和sum的的大小,如果为负数将sum置为0;如果最后结果max为0,则代表数组中都为负数,此时只需要找出最大的一个负数就可以。输出最大的子数组之和。 三、 代码: //吕兰兰 禹慧慧 2016.3.26 #include<iostream> using namespace std; int main() { int a[100],N; int sum=0,max=0; cout<<"Please input the number of the array:"; cin>>N; cout<<"Please input "<<N<<"number:"; for(int i=0;i<N;i++) cin>>a[i]; for(int i=0;i<N;i++) { sum+=a[i];//将每位求和赋给sum if(a[i]>=0) { if(max<sum) { max=sum; } } if(sum<0) { sum=0; } } if(max==0) { max=a[0]; for(int i=1;i<N;i++) { if(a[i]>max) max=a[i]; } } cout<<"The max is:"<<max<<endl; return 0; } 四、 用时:计划花费4个小时,实际花费了7个小时;其中包括改错调试程序和赵程序的设计思路; 五、 体会:这次实验相比前几次实验还是比较简单的,只要找到设计的思路编程实现起来还是比较容易的。
以上是关于求数组最大字数组之和第一部的主要内容,如果未能解决你的问题,请参考以下文章