#include
#include
int queue1,*queue2,n;
int cmp(const void*a,const void*b)
{
return((int*)a-*(int*)b);
}
int gg(int p1,int *p2,int j)
{
int i,f;
p2[0]=p1[j];
j=-1;
for(i=0;i {
if(p1[i+1]>p2[j]) p2[j]=p1[i]+p2[j];
else
{
j++;
p2[j]=p1[i]+p1[i+1];
i=i+2;
}
}
if(j!=0)
{
f=gg(p2,p1,j); \here look!
return(f);
}
else return(p2[0]);
}
int main()
{
int i,j,k;
scanf("d",&n);
queue1=(int)calloc(n,sizeof(int));
queue2=(int*)calloc(n,sizeof(int));
for(i=0;i<n;i++)
scanf("%d",&queue1[i]);
qsort(queue1,n,sizeof(int),cmp);
k=gg(queue1,queue2,n);
printf("%d",k);
while(1);
return 0;
}
报错于 25 行 f=gg(p2,p1,j);
百度得知:一般要么是访问了空指针指向的对象,要么是访问了已经被销毁的对象,要么是数组越界;
但我不知道我的程序是哪种
今天刚注册,发的第一个贴,大神们教教我!!://b