#include<stdio.h>
#include<stdlib.h>
int find(int *p,int n)
{
int max=0,temp=0;
for(int i=0;i<n;i++)
{
if(temp<=0)
{
temp=p[i];
}
else
{
temp+=p[i];
}
if(max<temp)
{
max=temp;
}
}
return max;
}
int main()
{
int ar[]={1, -2, 3, 10, -4, 7, 2, -5};
int n=sizeof(ar)/sizeof(*ar); //sizeof(ar)=32 sizeof(*ar)=4;
printf("%d\n",find(ar,n));
system("pause");
return 0;
#include<stdlib.h>
int find(int *p,int n)
{
int max=0,temp=0;
for(int i=0;i<n;i++)
{
if(temp<=0)
{
temp=p[i];
}
else
{
temp+=p[i];
}
if(max<temp)
{
max=temp;
}
}
return max;
}
int main()
{
int ar[]={1, -2, 3, 10, -4, 7, 2, -5};
int n=sizeof(ar)/sizeof(*ar); //sizeof(ar)=32 sizeof(*ar)=4;
printf("%d\n",find(ar,n));
system("pause");
return 0;
}
结果: