max_batch.c

来自「针对一个数组」· C语言 代码 · 共 41 行

C
41
字号
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int a[]= {1,3,5,9,-4,6,-7,-23,4,20,89,-71,5};

int main (void)
{
	int i;
	int max = 0; //存放计算过程的中的局部最大值
	int beg = 0; //局部最大值的起始位置
	int end = 0; //局部最大值的最终位置
	int reserve_val = 0;//全局最大值
	int r_beg = 0;//全局最大值的起始位置
	int r_end = 0;//全局最大值的最终位置
	for (i = 0; i < sizeof (a) / sizeof (int); i++)
	{
		if ((max + a[i]) > a[i])//判断,然后更新局部最大值、起始位置、最终位置
		{
			end = i;
			max = max + a[i];
		}
		else
		{
			beg = i;
			end = i;
			max = a[i];
		}
		if (max > reserve_val)//局部最大值和全局最大值进行比较
		{
			reserve_val = max;
			r_beg = beg;
			r_end = end;
		}
	}
	printf ("max= %d, during [%d, %d]\n", max, beg, end);
	printf ("r_v= %d, during [%d, %d]\n", reserve_val, r_beg, r_end);

	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?