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 }
原文:http://www.cnblogs.com/a604378578/p/3547491.html