本题要求从键盘读入n个整数,对这些数做选择排序。输出选择排序每一步的结果和最终结果。 输入格式: 输入的第一行是一个正整数n,表示 在第二行中会有n个整数。 输出格式: 输出选择排序每一步的结果和最终结果。C语言代码
时间: 2024-03-24 19:36:27 浏览: 35
好的,这是从键盘读入n个整数,对这些数做选择排序的 C 语言代码实现:
```c
#include <stdio.h>
void selectionSort(int arr[], int n) {
int i, j, min_idx;
// One by one move boundary of unsorted subarray
for (i = 0; i < n-1; i++) {
// Find the minimum element in unsorted array
min_idx = i;
for (j = i+1; j < n; j++)
if (arr[j] < arr[min_idx])
min_idx = j;
// Swap the found minimum element with the first element
int temp = arr[min_idx];
arr[min_idx] = arr[i];
arr[i] = temp;
// Print each step
for (int k = 0; k < n; k++) {
printf("%d ", arr[k]);
}
printf("\n");
}
}
int main() {
int n;
scanf("%d", &n);
int arr[n];
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// Print the original array
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// Sort the array
selectionSort(arr, n);
// Print the sorted array
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
输入示例:
```
6
5 3 8 6 4 2
```
输出示例:
```
5 3 8 6 4 2
2 3 8 6 4 5
2 3 4 6 8 5
2 3 4 5 8 6
2 3 4 5 6 8
2 3 4 5 6 8
```