用c语言实现
时间: 2023-10-22 15:07:46 浏览: 50
以下是选择排序的C语言实现代码,可以满足题目要求:
```c
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int arr[n];
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
for (int i = 0; i < n; i++) {
int min_idx = i;
for (int j = i+1; j < n; j++) {
if (arr[j] < arr[min_idx]) {
min_idx = j;
}
}
int temp = arr[i];
arr[i] = arr[min_idx];
arr[min_idx] = temp; // 交换最小值和当前位置的值
printf("step %d: ", i+1);
for (int k = 0; k < n; k++) {
printf("%d ", arr[k]);
}
printf("\n"); // 输出每一步的结果
}
printf("sorted array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n"); // 输出最终结果
return 0;
}
```
示例输入:
```
5
3 7 2 9 1
```
示例输出:
```
step 1: 1 7 2 9 3
step 2: 1 2 7 9 3
step 3: 1 2 3 9 7
step 4: 1 2 3 7 9
sorted array: 1 2 3 7 9
```
阅读全文