Here's description中的以下代码。对于从1到3000的数字输入序列,我的代码在1040输入处停止。我不明白为什么会这样。请帮忙!
#include<stdio.h>
#include<stdlib.h>
void search(int x,int *array,int a,int b,int *c)
{
for(int i=b+1;*(array+i)<=x;i++)
{
if(*(array+i)==x)
{
*c=1;
printf("%d %d %d\n",*(array+b),x,(*(array+b)+x));
return;
}
}
}
int main()
{
int t,n,i=1,j,sum,flag;
scanf("%d",&t);
getchar();
while(i<=t)
{
flag=0;
scanf("%d",&n);
printf("%d\n",n);
getchar();
int *array=(int *)malloc(n*sizeof(int));
for(j=0;j<n;j++)
{
scanf("%d",(array+j));
getchar();
printf("%d\n",*(array+j));
}
scanf("%d",&sum);
getchar();
for(j=0;*(array+j)<=(sum/2);j++)
{
search((sum-*(array+j)),array,n,j,&flag);
}
if(flag==0)
{
printf("-1\n");
}
i++;
}
}