输入一个整形数组,数组的大小N,数组元素都从键盘输入,
数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,
每个子数组都有一个和。
求所有子数组的和的最大值
#include <stdio.h>
/* 输入一个整形数组,数组的大小N,数组元素都从键盘输入,
数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,
每个子数组都有一个和。
求所有子数组的和的最大值 */
void main()
{
int i,j;
int n;
int sum=0;
printf("输入数组元素个数:\n");
scanf("%d",&n);
int a[n];
printf("输入%d个整数,有正负数:\n",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
int max=a[0];
for(i=0;i<n;i++)//i子数组的开始
{
for(j=i;j<n;j++)//j子数组的结束
{
sum=sum+a[j];
max=(max>sum)?max:sum;
}
sum=0;
}
printf("子数组之和最大值为:%d\n",max);
}
关键字
static const extern define typedef auto register volatile(1)static
第一种:static修饰全局变量,局部变量
修饰全局变量