程序开发之结对合作

一、题目

返回一个整数数组中最大子数组的和

要求:

输入一个整形数组,数组里有正数有负数

数组中连续的一个或多个整数组组成一个子数组,每个子数组都有一个和

求所有子数组的和的最大值

二、解题思路

1、以输入三个数为例进行比较

2、分三种情况,分别为一个数,两个数相加和三个数相加

3、分别求得三种情况的最大值,进行比较,选出最大的值

三源代码

 1 #include<iostream.h>
 2 int main()
 3 {
 4 int a[3];
 5 for(int i=0;i<3;i++)
 6 {
 7 cin>>a[i]; 
 8 }      //输入
 9 
10 int max1,max2,max3;  //单数比较
11 max1=a[0];
12 for(i=0;i<3;i++)
13 {
14     if(a[i]<max1){}
15     else
16     {
17         max1=a[i];
18     }
19 }
20 max2=a[0]+a[1];
21 for(i=0;i<2;i++)
22 {
23     if( max2>a[i]+a[i+1]){}
24     else
25     {
26         max2=a[i]+a[i+1];
27 
28     }
29 }
30 int sum=0;
31 for(i=0;i<3;i++)
32 {
33    sum=sum+a[i];
34    max3=sum;
35 }
36 int t;
37 if(max1>max2)
38 {
39     if(max1>max3)
40     {
41         cout<<max1<<endl;
42     }
43     else
44     {
45         cout<<max3<<endl;
46     }
47 
48 }
49 else
50 {
51     if(max2>max3)
52     {
53         cout<<max2<<endl;
54     }
55     else
56     {
57         cout<<max3<<endl;
58     }
59 }
60 
61 
62 }

四、运行结果

五、反思总结

      今天,通过结对开发进行程序设计,我感觉收获很多。和同伴一起合作,在设计程序和相关算法的时候,很快就能确定思路。自己在思路上遇到问题时,和同学讨论,很快就可以解决问题。感觉上比一个人的时候轻松很多。在编写的过程中,有一些小错误,同伴及时提出,节约了很多时间。两个人一起谈论、一起编写,让程序更加完善,也从对方身上学到许多自己欠缺的东西。

原文地址:https://www.cnblogs.com/yuji5656/p/4345067.html