为什么scanf比预期还要多输一个

我在尝试运行时,发现总要比amount的值多输一个分数,不知道自己代码哪出问题了
问题

img

#include
#include
int main(void)
{
    int amount;
    int* string;
    scanf("%d\n",&amount);
    int sum = 0;
    string = (int*)malloc(amount*sizeof(int));
    int i;
    for(i=0; iscanf("%d\n",&string[i]);

    }
    for(i=0;iif(string[i]<60)
        {
            sum++;







        }

    }

    printf("%d",sum);

    free(string);
return 0;
}


比如如果我先输入2,就要后面跟三个数字才能出结果,这是为什么?

scanf("%d",&a);
不要加\n