参考程序:
#include "stdio.h"
int maxa(int * a,int l,int* s,int* e) /*用s和e 记录子数组起始和终止地址,l是数组长度*/
{
int summax=0; /*最大子数组的和*/
int sumcur=0; /*当前和*/
int i;
*s=0;*e=0;
for(i=0;i { sumcur+=a[i]; if(sumcur>summax) { summax=sumcur; *e=i; } else if(sumcur<0) { sumcur=0; *s=i+1; } } if(summax<=0) { summax=a[0];
#include
int main(){
int n,i,num[1000];
scanf("%d",&n);
for(i=0;i
for(i=0;i
return 0;}
循环加判断