C语言 冒泡排序(数组) 题目描述 输入n个数字,使用冒泡排序对其进行升序排序。 输入 测试次数T 每组测试数据格式为:数字个数n,后跟n个数字。假设n<20。 输出 对每组测试数据,输出冒泡排序的每趟排序结果
时间: 2024-03-03 09:49:39 浏览: 98
好的,这是一个关于C语言冒泡排序的问题。以下是代码实现:
```c
#include <stdio.h>
void bubble_sort(int arr[], int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
// 输出每趟排序结果
for (j = 0; j < n; j++) {
printf("%d ", arr[j]);
}
printf("\n");
}
}
int main() {
int T, n, i;
scanf("%d", &T);
while (T--) {
scanf("%d", &n);
int arr[n];
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
bubble_sort(arr, n);
printf("\n");
}
return 0;
}
```
首先,我们需要实现一个冒泡排序的函数 `bubble_sort`。它接收一个整型数组 `arr` 和数组的长度 `n` 作为参数,对数组进行升序排序,并输出每趟排序的结果。具体实现方式就是通过嵌套的两个循环,每次比较相邻的两个元素,如果前面的元素大于后面的元素,则交换它们的位置。每趟排序结束后,输出当前数组的所有元素。
在 `main` 函数中,我们先输入测试次数 `T`,接着每次输入数字个数 `n` 和 `n` 个数字,将它们存入数组 `arr` 中,然后调用 `bubble_sort` 函数对数组进行排序,并输出一个空行。
以上就是完整的实现代码。希望能帮到你!
阅读全文