内存超限该怎么办?
程序代码:
#include <stdio.h> #include <stdlib.h> int main() { int i,j,k,a=0,sum=0,min,max; int data[10000]; int **s; scanf("%d",&k); s=(int **)malloc(sizeof(int*)*k); for(i=0;i<k;i++) s[i]=(int *)malloc(sizeof(int)*k); for(i=0;i<k;i++) for(j=0;j<k;j++) s[i][j]=0; for(i=0;i<k;i++) { scanf("%d",&data[i]); s[i][0]=data[i]; } for(i=0;i<k;i++) if(data[i]>=0)a++; if(a==0) { sum=0; min=data[0]; max=data[k-1]; } else { for(i=0;i<k;i++) for(j=1;j<k-i;j++) s[i][j]=s[i][j-1]+data[i+j]; for(i=0;i<k;i++) for(j=0;j<k-i;j++) if(sum<s[i][j]) { sum=s[i][j]; min=data[i]; max=data[i+j]; } } printf("%d %d %d\n",sum,min,max); for(i=0;i<k;i++) free(s[i]); free(s); return 0; }