一、    题目要求:返回整数数组中最大的子数组的和
输入一个整形数组,数组里有正数也有负数。
数组中连续的一个或多个整数组成一个数组,每个子数组都有一个和。
二、    设计思路:
首先输入一串数组,定义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个小时;其中包括改错调试程序和赵程序的设计思路;
五、    体会:这次实验相比前几次实验还是比较简单的,只要找到设计的思路编程实现起来还是比较容易的。 
 

相关文章:

  • 2022-02-01
  • 2021-12-01
  • 2021-07-27
  • 2022-01-16
  • 2021-09-18
  • 2022-12-23
  • 2022-02-03
  • 2022-01-25
猜你喜欢
  • 2022-12-23
  • 2022-03-04
  • 2021-08-26
  • 2022-01-16
  • 2021-06-11
  • 2021-10-25
  • 2021-08-22
相关资源
相似解决方案