### 思路
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;
}