问题是 天梯赛的善良 这么做哪里错了呢

#include<stdio.h>
int main()
{
int N,a,min,max,n=1,m=1,x=1000000,y=0;
scanf("%d\n",&N);
scanf("%d",&a);
if(a<=x&&a>y)
max=min=a;
for(int i=1;i<N;i++){
scanf("%d",&a);
if(max<a) max=a;
if(max==a) n++;
if(min>a) min=a;
if(min==a) m++;
}
printf("%d %d\n",min,m);
printf("%d %d",max,n);
return 0;
}


#include<stdio.h>
int main()
{
int N,a,min,max,n=1,m=1,x=1000000,y=0;
scanf("%d\n",&N);
scanf("%d",&a);
if(a<=x&&a>y)
max=min=a;
for(int i=1;i<N;i++){
scanf("%d",&a);
if(max<a) {
    //找到更大值,n重置
    max=a;
    n=0;
}
if(max==a) n++;
if(min>a) {
    //找到更小值,m重置
    min=a;
    m=0;
}
if(min==a) m++;
}
printf("%d %d\n",min,m);
printf("%d %d",max,n);
return 0;
}

第一个scanf里面的“\n”去掉