R7-1 选择排序 分数 20 作者 伍建全 单位 重庆科技学院 本题要求从键盘读入n个整数,对这些数做选择排序。输出选择排序每一步的结果和最终结果。 输入格式: 输入的第一行是一个正整数n,表示 在第二行中会有n个整数。 输出格式: 输出选择排序每一步的结果和最终结果。 输入样例: 在这里给出一组输入。例如: 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 注意: 输出的冒号 : 是英文输入法下的符号,冒号后有一个空格。每个整数后有一个空格。用C语言实现
时间: 2023-12-29 21:06:46 浏览: 200
以下是该题的 C 语言代码实现:
```c
#include <stdio.h>
int main()
{
int n, i, j, min_index;
scanf("%d", &n);
int a[n];
for(i=0; i<n; i++)
{
scanf("%d", &a[i]);
}
for(i=0; i<n; i++)
{
min_index = i;
for(j=i+1; j<n; j++)
{
if(a[j] < a[min_index])
{
min_index = j;
}
}
int tmp = a[i];
a[i] = a[min_index];
a[min_index] = tmp;
printf("step %d: ", i+1);
for(j=0; j<n; j++)
{
printf("%d ", a[j]);
}
printf("\n");
}
printf("sorted array: ");
for(i=0; i<n; i++)
{
printf("%d ", a[i]);
}
return 0;
}
```
代码思路:
1. 输入 n 和 n 个整数;
2. 进行选择排序,每进行一次交换操作,输出当前排序的结果;
3. 排序完成后,输出最终结果。
需要注意的是,C 语言中需要手动进行数组的输入和输出,因此在输入和输出时需要使用循环遍历数组。
阅读全文