Scanf是否可用于大量输入

时间:2018-12-08 13:03:36

标签: c scanf

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++;
  }
}

0 个答案:

没有答案