返回一个二维整数数组中最大子数组的和1
一.题目:返回一个整数数组中最大子数组的和。
二.要求: 输入一个整形数组,数组里有正数也有负数。
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
求所有子数组的和的最大值。要求时间复杂度为O(n)。
三.结对编程要求: 两人结对完成编程任务。
一人主要负责程序分析,代码编程。 一人负责代码复审和代码测试计划。
发表一篇博客文章讲述两人合作中的过程、体会以及如何解决冲突(附结对开发的工作照)。
四.队员:孔维春,崔鹏勃
五.合作过程及体会:
我和崔鹏勃两人轮流负责程序,分析代码编程和代码复审,代码测试,加强了合作编程能力,对自己有很大提升,发生冲突时,先通过互相交流意见求同存异,再从网上查阅资料或者实际编程,选择最合适的方法,思路.
六.源程序代码
// ConsoleApplication3.cpp : 定义控制台应用程序的入口点。 #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { return 0; } #include <iostream> using namespace std; #include<stdlib.h> #include<time.h> int main() { int i; int a[10]; int max = 0; int b = 0; srand(time(NULL)); cout << "数组为:"; for (i = 0; i<10; i++) { a[i] = rand() % 201 - 100; //随机生成-10 到 10的整数 } for (i = 0; i<10; i++) { cout << a[i] << " "; } cout << endl; for (i = 0; i < 10; i++) { b += a[i]; if (b < 0) b = 0; if (b > max) max = b; } if (max == 0) { max = a[0]; for (i = 0; i < 10; i++) { if (max < a[i]) { max = a[i]; } } } cout << "最大子数组为:" << max << endl; system("pause"); return 0; }
七.结果截图