问题:求N个数中第二大的数,只要输入的第一个数是最大的数就会输出错误,该怎么修改呀?

#include"stdio.h"
int main()
{
int n,i,max1,max2,a[100];
scanf("%d",&n);
for(i=0;i
scanf("%d",&a[i]);
max1=max2=a[0];
for(i=1;i<=n;i++)
{
if(a[i]>max1)
{
max2=max1;
max1=a[i];
}
else if(a[i]>max2)
{
max2=a[i];
}
}
printf("%d\n",max2);
return 0;
}


#include "stdio.h"

int main(int argc,char *argv[]){

int N,a,b,m;

printf("Enter N(int 1<N<201)...\nN=");

if(scanf("%d",&N)!=1 || N<2 || N>200){

printf("Input error, exit...\n");

return 0;

}

a=b=-10000000;

while(N--){

if(scanf("%d",&m)!=1 || m<-10000000 || m>10000000){

printf("Input error, redo: ");

fflush(stdin);

N++;

}

else if(m>a)

b=a,a=m;

}

printf("The second MAX is %d\n",b);

return 0;

}