### 思路
1. **初始化**:定义变量`i`, `j`, `k`和临时变量`tmp`。
2. **外层循环**:遍历数组的每个元素,`i`从0到`n-2`。
3. **内层循环**:从`i+1`到`n-1`,找到最小元素的索引`k`。
4. **交换**:将最小元素与当前元素交换。
### 伪代码
1. 初始化`i`, `j`, `k`和`tmp`。
2. 外层循环从`i=0`到`n-2`:
- 设置`k=i`。
- 内层循环从`j=i+1`到`n-1`:
- 如果`a[j] < a[k]`,则`k=j`。
- 交换`a[k]`和`a[i]`。
### C代码
#include <stdio.h>
void sort(int a[], int n) {
int i, j, k, tmp;
for (i = 0; i < n - 1; i++) {
k = i;
for (j = i + 1; j < n; j++) {
if (a[j] < a[k]) {
k = j;
}
}
tmp = a[k];
a[k] = a[i];
a[i] = tmp;
}
}
int main() {
int a[10];
int i;
for (i = 0; i < 10; i++) {
scanf("%d", &a[i]);
}
sort(a, 10);
for (i = 0; i < 10; i++) {
printf("%d\n", a[i]);
}
return 0;
}