12 #include <stdio.h>
13 #define LEN 5
14
15 void get_number(int *buf)
16 {
17 int i;
18 for(i=0; i<LEN; i++) {
19 scanf("%d",&buf[i]);
20 }
21 }
22
23 void select_sort(int *buf)
24 {
25 int i = 0, j = 0, key,n = 0;
26 for(i=0; i<LEN; i++) {
27 int n = 0;
28 key = buf[i];
29 for(j=i+1; j<LEN; j++) {
30 if(key>buf[j]) {
31 key = buf[j];
32 n = j;
33 }
34 }
35 if(n != 0) { //如果n等于0,则表明key是最大的,没有发生交换,如果下面代码执行的话,就会乱交换,导致数据丢 失;
36 buf[n] = buf[i];
37 buf[i] = key;
38 }
39 }
40 }
41
42 int main(void)
43 {
44 int buf[LEN] = {0};
45 get_number(buf);
46 select_sort(buf);
47 int i;
48 for(i=0; i<LEN; i++) {
49 printf("%d ",buf[i]);
50 }
51 printf("\n");
52 return 0;
53 }