c语言交换最大值和最小值问题,为什么最后一个测试点是运行时错误。
#include<stdio.h>
int main()
{int i,n,max,min,maxnum,minnum,a[100],t;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
max=a[0];
min=a[0];
for(i=0;i<n;i++)
{
if(a[i]<min)
{min=a[i];
minnum=i;}
}
t=a[0];
a[0]=a[minnum];
a[minnum]=t;
max=a[0];
min=a[0];
for(i=0;i<n;i++)
{
if(a[i]>max)
{max=a[i];
maxnum=i;}
}
t=a[n-1];
a[n-1]=a[maxnum];
a[maxnum]=t;
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}
return 0;
}