程序开发之结对合作
一、题目
返回一个整数数组中最大子数组的和
要求:
输入一个整形数组,数组里有正数有负数
数组中连续的一个或多个整数组组成一个子数组,每个子数组都有一个和
求所有子数组的和的最大值
二、解题思路
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 }
四、运行结果
五、反思总结
今天,通过结对开发进行程序设计,我感觉收获很多。和同伴一起合作,在设计程序和相关算法的时候,很快就能确定思路。自己在思路上遇到问题时,和同学讨论,很快就可以解决问题。感觉上比一个人的时候轻松很多。在编写的过程中,有一些小错误,同伴及时提出,节约了很多时间。两个人一起谈论、一起编写,让程序更加完善,也从对方身上学到许多自己欠缺的东西。