1 /*描述
 2 输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输出这些数。(如果这个第一个数就是最小的数,则保持原样输出,如果最小的数有相同的按照前面的交换)
 3 输入
 4 输入数据有多组,每组占一行,每行的开始是一个整数n,表示这个测试实例的数值的个数,跟着就是n个整数。n=0表示输入的结束,不做处理。
 5 输出
 6 对于每组输入数据,输出交换后的数列,每组输出占一行。
 7 样例输入
 8 4 2 1 3 4
 9 5 5 4 3 2 1
10 0
11 样例输出
12 1 2 3 4
13 1 4 3 2 5*/
14 #include<stdio.h>
15 int main()
16 {
17     int n;
18     while(scanf("%d",&n) != EOF && n)
19     {
20         int s[n] , i , min , a , b=0 , t , c ;
21         for(i = 0; i <= n-1 ;i++)
22             scanf("%d", &s[i]);
23         min = s [ 0 ]; 
24         for(a = 1; a <= n-1 ;a++)
25         {
26              if(s [ a ] < min)
27              {
28                 min = s [ a ];
29                 b = a;
30              }
31         }
32             t = s [ 0 ];
33             s [ 0 ] = min;
34             s [ b ] = t;
35             for(c = 0; c <= n-1 ;c++)
36             printf("%d ",s[c]);
37         printf("\n");
38     }
39     return 0;
40 }