从键盘输入n个(n≤10)整数,用交换法进行排序(非递减有序),结果输出排序后的序列。说明:交换法排序用函数实现,函数原型为:void sort(int *a,int n); 交换法排序的基本思想是:n个元素共需要n-1趟,其中第i(从0变化至n-2)趟的任务是找出本趟中最小的元素放在下标为i的位置上,每趟通过从i+1到n-1下标的元素逐个与i下标元素比较及时交换进行排序。 输入格式: 先输入n的值,再用循环输入n个数组元素,输入每个整数用的格式控制串都是"%d" 说明:输入n时假定输入的值一定在闭区间[1,10]之内,不需要用分支或循环结构对输入n的值再进行判断。 输出格式: 输出交换后的序列,单个元素输出时printf中使用的格式串为"%d " (请在程序中直接复制这个格式串) 所有元素输出结束后用printf("\n"); 进行换行处理。 输入样例: 9 5 6 3 8 23 90 12 34 25 输出样例: 3 5 6 8 12 23 25 34 90
时间: 2023-12-14 21:36:34 浏览: 101
编写程序实现以下功能:从键盘输入十个整数,用冒泡法排序后按从小到大输出
```python
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
void sort(int *a, int n) {
for (int i = 0; i < n - 1; i++) {
int min_index = i; // 记录本趟中最小元素的下标
for (int j = i + 1; j < n; j++) { // 找出本趟中最小元素的下标
if (a[j] < a[min_index]) {
min_index = j;
}
}
swap(&a[i], &a[min_index]); // 将最小元素交换到i位置
}
}
int main() {
int n;
scanf("%d", &n);
int a[n];
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
sort(a, n);
for (int i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
```
阅读全文