码迷,mamicode.com
首页 > 编程语言 > 详细

求一个数组中和最小的连续子数组

时间:2015-04-12 01:25:31      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:

#include<stdio.h>
#define MAX_LENGTH 10

int main()
{

	int a[MAX_LENGTH]={1,2,3,-2,4,-6,-8,5,3,1};

	int i,j,beg,end,tmp,min=0x7fffffff;  //beg和end分别为子数组中首末元素下标,min为无穷大的数
	beg=end=tmp=0;

	for(i=0;i<MAX_LENGTH;++i)
	{

		tmp=a[i];
		for(j=i+1;j<MAX_LENGTH;++j)
		{
			if(a[j]<=0)
			{
				tmp+=a[j];
			} 
			else
				break;
		}
		if(min>tmp)
			{
				beg=i;
				end=j-1;
				min=tmp;
			}
	}
	printf("最小值为:%d\n",min);
	printf("子数组为:");
	for(i=beg;i<=end;++i)
		printf("%d ",a[i]);
	printf("\n");
	return 0;
}

技术分享

求一个数组中和最小的连续子数组

标签:

原文地址:http://blog.csdn.net/yangshuangtao/article/details/45004439

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!