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