返回一个二维整数数组中最大子数组的和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;
}

七.结果截图

原文地址:https://www.cnblogs.com/littilsaber/p/4348686.html