一个有 N个元素的整型数组,求该数组的各个子数组中,子数组之和的最大值是多少? 例如数组 a[6]={-2,5,3,-6,4,-8,6};则子数组之和的最大值是 8(即 a[1]+a[2])。

一个有 N个元素的整型数组,求该数组的各个子数组中,子数组之和的最大值是多少? 例如数组 a[6]={-2,5,3,-6,4,-8,6};则子数组之和的最大值是 8(即 a[1]+a[2])。

更多资料请点击:我的目录

#include <stdio.h>

int i ,j , N,max;

int main()
{
	printf("请输入数组大小:");
	scanf("%d",&N);
	int arr[N];
	int sum[100];
	int max = 1;
	printf("请输入数组各项数值):\n");
	for( i = 0; i < N; i++)
	{	
		scanf("%d",&arr[i]);
	}
	int *p = arr;									//定义一个指针指向数组arr

	for( i = 0; i < N; i++)
	{
		int s = 0;									//每次sum相加结束后。初始化为0
		for( j = 0; j < N-i; j++)
		{
			s += *(p+i+j);							//将各项元素相加
			sum[j] = s;
			max = max > sum[j] ? max : sum[j];		//求最大值,赋给全局变量max
		}	
	}
	printf("\n%d\n",max);							//输出最大值
}

在这里插入图片描述
更多资料请点击:我的目录

发布了59 篇原创文章 · 获赞 23 · 访问量 1662

猜你喜欢

转载自blog.csdn.net/weixin_43793181/article/details/103999255