#include "stdio.h"
main()
{ int n,i,a[110],m,t;
while(scanf("%d",&n)&&n!=0)
{
scanf("%d",&a[0]);
m=0;
for(i=1;i<n;i++)
{
scanf("%d",&a[i]);
if(a[i]<a[m]) m=i;
}
t=a[m];a[m]=a[0];a[0]=t;
for(i=0;i<n;i++)
{
if (i<n-1)
printf("%d ",a[i]);
else printf("%d\n",a[i]);
}
}
return 0;
}
PS:把最小值赋给a[0],并且以m标记变化,遇到比a[m]小的数就替换,最终找到最小值a[m]后,交换a[0]和a[m]的值。最后注意输出格式。
对这种题,先分析步骤,再分步解决。